第二十集:三大特性-继承-多继承关系列表

'''
# 在实现继承的语法后,程序会自动生成一个继承的列表 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)
posted @ 2022-03-14 22:27  冬天里的狐狸  阅读(32)  评论(0编辑  收藏  举报