一个简单的例子
class A:
name = "1"
def __init__(self):
self.name = "aaa"
if __name__ == '__main__':
a = A()
print(a.name)
结果为:aaa
查找顺序:由下而上,第一步查询实例的name,如果查不到则向上查找,查找到类的name
关于MRO(C3真的牛逼)
查找网上资料了解下即可
附上代码,自己复习的时候体会:
第一种:菱形继承
class D:
pass
class C(D):
pass
class B(D):
pass
class A(B,C):
pass
if __name__ == '__main__':
print(A.__mro__)
(<class '__main__.A'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.D'>, <class 'object'>)
第二种:
class E:
pass
class D:
pass
class C(E):
pass
class B(D):
pass
class A(B,C):
pass
(<class '__main__.A'>, <class '__main__.B'>, <class '__main__.D'>, <class '__main__.C'>, <class '__main__.E'>, <class 'object'>)