@git
使用类的魔法方法__mro__
能够查看他的父类调用顺序
还有调用父类的构造方法的时候,使用super调用,里面有C3算法支持,不会重复调用相同的祖先类github
class Parent(object): def __init__(self,name,*args,**kwargs): print("Parent的init开始调用") self.name = name print("Parent的init结束调用") class Son1(Parent): def __init__(self,name,gender,*args,**kwargs): print("Son1的init开始调用") self.gender = gender super().__init__(name,*args,**kwargs) print("Son1的init结束调用") class Son2(Parent): def __init__(self,name,age,*args,**kwargs): print("Son2的init开始调用") self.gender = age super().__init__(name,*args,**kwargs) print("Son2的init结束调用") class GrandSon(Son1,Son2): def __init__(self,name,gender,age): print("GrandSon的init开始调用") super().__init__(name,age,gender) print("GrandSon的init结束调用") print(GrandSon.__mro__)
我的博客网站
我的GitHub地址
我的公众号:
算法