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
posted @ 2021-07-06 14:13  SEPIA  阅读(63)  评论(0)    收藏  举报