1. Oop特征:
继承、多态、封装
2. 析构方法
a)概念:当一个对象被删除或者被销毁时,Python解释器也会默认调用一个方法,这个方法为__del__()方法,也成为析构方法。
b)程序执行结束自动调用析构方法。
c)对象被删除时也会自动调用__del__方法
d)__del__主要用来操作‘对象的释放’,一旦释放完毕,对象便不能再使用。
e)总结:
i.当整个程序脚本执行完毕后会自动调用__del__方法。
ii.当对象被手动销毁时也会自动调用__del__方法。
iii.析构函数一般用于资源回收,利用__del__方法销毁对象回收内存等资源。
3. 单继承:
a)封装:把内容封装到某个地方,便于后面的使用
i.把内容封装到某处
ii.从另外一个地方去调用被封装的内容
对封装来讲,其实就是使用初始化构造方法将内容封装到对象中,然后通过对象直接或者self间接来获取被封装内容。
b)继承:子可以继承父的内容【属性和行为】,父有,子也有;子有,父未必有。
class A: def eat(self): ''' 吃 :return: ''' print('吃饭了') pass def drink(self): ''' 喝 :return: ''' print('喝水了') pass pass
class Dog(A): #继承了A父类,此时Dog为子类 def wwj(self): print('dog wwj') pass
class Cat(A): def mmj(self): print('cat mmj') passd1=Dog()
d1.eat() #具备了吃的行为,继承了父类的行为c1=Cat()
c1.drink()
c)对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一去实现,精简代码层级结构,减少重复书写,便于拓展。
4. 多继承
a)子类可继承多个父类
b)__mro__可以显示类的依次继承关系(methord resolution order)
c)总结:类的传递过程中,把父类又称为基类,子类又称为派生类,父类的属性和方法可以一级一级的传递到子类。
5. 重写父类的方法:
a)所谓重写,就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法。
6. 调用父类的方法:
a)Super()可以自动找到父类,进而调用方法。如果继承了多个父类,那么会按照顺序逐个去找,然后再调用。