super注意事项

函数和方法都是共享的
super注意事项__dict__可以标记其其有啥属性
多继 承
一个类有多个父类,但多继承的难点是super

子类里边继承了和父类相同的方法就是重写(重新覆盖)调用的时候调用子类的方法
一个类定义了多个相同的函数名方法就是重载 根据传参的类型和个数不同调用的方法名是一个但是方法的类型不一样。
python中重载很少出现
调用被重写的方法

  1. 类名 父类名(self当做实参传递 )
  2. super
  3. super+父类名

super注意事项通过gandson创建对象的时候init方法被调用
son1.init
son2.init
super注意事项上图代码说明用重写的时候用父类名的这个方法会导致以上情况出现father会被多次重新。
调用grandson的时候会自动调用son1的init函数,调用son1的时候会自动调用father。同理son2也会调用gather
father被调用两次。如果多程序继承的时候father被调用多次。而进程要求套接字有上限,最多创建1024个套接字因此此种方法不可用
因此要使用super,调用super的时候son1会被调用,但是son2不会会被调用。
类名__mro__元组用变量名标记。元组里有好几个值,这些值得先后顺序决定调用super的时候调用顺序。调用super的时候super自动决定调用顺序。调一次只调一个父类
怎么决定呢?
super注意事项super注意事项以上打印结果为调用super的时候调用哪个父类
__mro__是python解释器c3算法决定的
现在是说了前两种方法,最后一种super+类名则是和直接调用super类似,不同的是super+类名可以在c3算法的__mro__元组中农欧冠直接跳到后边那个类名中