面向对象编程(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、多态。