面向对象编程

面向对象编程
面向过程与面向对象
  最早普遍使用的是面向过程编程,即Procedure Oriented Programming,简称POP,是一种将功能封装到函数中,将数据作为实参传入函数进行处理,以数据处理过程作为中心的编程方法。
  后来出现了面向对象编程,即Object Oriented Programming, 简称OOP,是一种将数据和功能封装到对象中,以对象为中心的编程方法。
  实际上,面向过程编程和面向对象编程并不是完全互斥的,面向对象编程中的函数级代码依然符合面向过程编程思想的。
  面向对象编程最显著的特点是类和对象。
  下面通过一个例子来展示面向过程与面向对象的基本不同。要实现的程序功能是:首先输入两个学生的姓名和分数,最后将名称和分数打印出来。
面向过程
  使用面向过程的编程思想,源码是:

# -*- coding: utf-8 -*-

name_first = input("Please input first student's name: ")         # 输入第一个学生的姓名
scope_first = int(input("Please input first student's scope: "))    # 输入第一个学生的分数

name_second = input("Please input second student's name: ")         # 输入第二个学生的姓名
scope_second = int(input("Please input second student's scope: ")) # 输入第二个学生的分数

print("The first student's name is: ", name_first)     # 打印第一个学生的姓名
print("The first student's scope is: ", scope_first)    # 打印第一个学生的分数

print("The second student's name is: ", name_second)    # 打印第二个学生的姓名
print("The second student's scope is: ", scope_second) # 打印第二个学生的分数
面向对象
  使用面向对象的编程思想,源码是:

# -*- coding: utf-8 -*-

class Student():
    '''
    定义一个学生类Student
    '''
    def inputName(self):
        name = input("Please input student's name: ") # 输入学生的姓名
        self.name = name
        
    def inputScope(self):
        scope = input("Please input student's scope: ") # 输入学生的分数
        self.scope = scope
        
    def printInfo(self):
        print("name: ", self.name)                     # 打印学生的姓名
        print("scope: ", self.scope)                    # 打印学生的分数
        
first = Student() # 生成学生类的第一个实例first
first.inputName() # 输入第一个学生的姓名
first.inputScope() # 输入第一个学生的分数

second = Student() # 生成学生类的第二个实例second
second.inputName() # 输入第二个学生的姓名
second.inputScope() # 输入第二个学生的分数

first.printInfo() # 打印第一个学生的姓名和分数
second.printInfo() # 打印第二个学生的姓名和分数