面向对象编程(OOP)是程序设计的思想,OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念面向对象的设计思想是抽象出类(Class),根据类(Class)创建实例(Instance)。面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。
我们用一个例子来说明面向对象的程序设计思想,假如我们要处理学生的成绩表。我们首先要思考的不是程序的执行流程,而是把Student这种数据类型视为一个对象,这个对象拥有name和score这两个属性(property)。我们要打印一个学生的成绩,首先要创建这个学生对应的对象,然后给对象发一个print_score消息,让对象自己把数据打印出来。
class Student(object):
def __init__(self,name,score):
self.name = name
self.score = score
def print_score(self):
print("{0}:{1}".format(self.name,self.score))
bart = Student("Bart Simpson",59)
bart.print_score()
lisa = Student("Lisa Simpson",88)
lisa.print_score()
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
面向对象的三大特点:
1、抽象封装
面向对象编程的一个重要特点就是数据封装。在上面Student类中,每个实例就拥有各自的name和score这些数据,要访问这些数据可以直接通过Studnet类内部定义访问数据的函数(print_score)。这样,数据就给封装起来了。这些封装数据的函数就是类方法。
2、继承
3、多态。