1. 程式人生 > 其它 >第二十集:三大特性-繼承-多繼承關係列表

第二十集:三大特性-繼承-多繼承關係列表

'''
# 在實現繼承的語法後,程式會自動生成一個繼承的列表 MRO(method realtion order) 方法關係列表
# MRO列表生成的原則:
# # 1.子類永遠在父類的前面
# # 2.同一等級的類,按照子類中的繼承順序銜接
# # 3.先子類,後父類的順序原則,最後的類時系統提供的Object類

# super() 在呼叫時,並不是查詢父類而是去MRO列表去找上一個類
# super()方法在呼叫時,會自動呼叫把self傳入到上一級類的方法中

# 類關係檢測 issubclass()
# issubclass() 檢測一個類是否是另一個類的子類
'''


class A():
pass


class B(A):
pass


class C(A):
pass


class D(B, C):
pass


print(D.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'>]
# 檢測一個類是另一個類的子類


res = issubclass(D, B) # D類是不是B類的子類
res = issubclass(C, B) # D類是不是B類的子類
print(res)