OOP把一个包含了数据和操作数据的函数对象作为程序的基本单元。( 面向过程的程序(视计算机程序为一系列的命令集合,一组函数的顺序执行),把大块函数切割成小块函数来降低系统的复杂度;面向对象的程序(视计算机程序为一组对象集合),接收其他对象传递的消息并处理,将数据对象化,并使对象拥有属性,特点:数据封装、继承和多态)
所有数据类型都可以视为对象,也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)
对象的方法,调用对象对应的关联函数。
面向对象的抽象程度又比函数要高,因为一个Class既包含数据,又包含操作数据的方法。
类是一个抽象的模板,是创建实例的模板,实例是根据类创建出来的具体对象,各个实例拥有的数据都相互独立,互不影响,每个实例的对象都拥有相同的“方法”。
定义(def)类:class Student(object):,class后面的是类名称,通常是大写开头的单词,括号里的参数表示该类是从哪个类继承下去的,object是通用的。
以类来给一个变量赋值,此时这个变量就是一个实例,而类本身还是一个类。
实例可以自由地绑定属性,比如绑定一个name属性:bart.name='XXX'
__init__,强制性绑定属性的。第一个参数是self,表示创建实例本身。因此,在方法内部,就可以把各种属性绑定到self,且不能传入空的参数,必须传入与__init__方法匹配的参数。
类中定义的函数,第一个参数永远是实例变量self,并且调用时不用传递该参数。类的方法和普通函数没什么区别,仍可以使用默认参数、可变参数等。
每个实例本身就拥有各自相应属性的数据,可以直接在类的内部定义访问数据的函数,将数据给封装起来,这些封装数据的函数和类本身是关联起来的,这是类的方法。
这样一来,创建实例需要给出对应的参数,而那些类的内部定义的,数据和逻辑都被封装起来,不用知道内部的细节。封装还可以给类增加新的方法。class后直接def。
网友评论