64.Python:菱形问题与mro介绍
# Python learning
# coding:utf-8
class A:
def test(self):
print('from A')
class B(A):
def test(self):
print('from B')
class C(A):
def test(self):
print('from C')
class D(B, C):
pass
obj = D()
obj.test()
print(D.mro()) # 类以及该类的对象访问属性都是参照该类的mro列表
# [<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]
print(C.mro())
# [<class '__main__.C'>, <class '__main__.A'>, <class 'object'>]
# 总结:类相关的属性查找(类名,属性、该类的对象,属性),都是参照该类的mro
                    
                
                
            
        
浙公网安备 33010602011771号