更加抽象:
7.1对象的魔力:1、多态:可以对不同类的对象使用相同的操作。
2、封装:对外部世界隐藏对象的工作细节。
3、继承:以普通的类为基础建立专门的类对象
7.1.1多态:意味着就算不知道变量所引用的对象类型是什么,还是能对它进行操作,而它也会根据对象(或类)类型的不同表现出不同的行为。可以让用户对于不知道是什么类的对象进行方法调用。
7.1.2封装:对全局作用域中其他区域隐藏多余的信息。可以不用关心对象是如何创建的而直接进行使用。
7.1.3继承:
7.2类和类型:
7.2.1类到底是什么:
7.2.2创建自己的类:class语句会在函数定义的地方创建自己的命名空间。self是对于对象自身的引用,无它,成员方法就没法访问它们要对其特性进行操作的对象本身了。
7.2.3特性、函数和方法:
私有性:为了让方法或者特性变成私有(从外部无法访问),只要在它的名字前面加上双下划线即可。类的内部定义中,所有以下划线开始的名字都被‘翻译’成前面加上单下划线和类名的形式。如果不需要使用这种方法但是又想让其他对象不要访问内部数据,那么可以使用单下划线。
7.2.4类的命名空间:定义类时,所有位于class语句中的代码都在特殊的命名空间中执行—类命名空间。这个命名空间可由类内所有成员访问。类的定义其实就是执行代码块。
7.2.5指定超类:
7.2.6调查继承:内建函数:issubclass(C,B);isinstance(object,class);__class__
7.2.7多个超类(多重继承):如果一个方法从多个超类继承,先继承的类中的方法会重写后继承的类中的方法。
7.2.8接口和内省:
小结:
对象:对象包括特性和方法。方法是存储在对象内的函数。(绑定)方法和其它函数的区别在于方法总是将对象作为自己的第一个参数,这个参数一般称为self。
类:类代表对象的集合(或一类对象),每个对象(实例)都有一个类。类的主要任务是定义它的实例会用到的方法。
多态:不需要知道对象属于哪个类就能调用方法。
封装:对象可以把它们的内部状态隐藏起来。
继承:一个类可以是一个或者多个类的子类。子类从超类继承所有方法。
接口和内省:
面向对象设计: