super().__init__()理解(三)
理解 __ init Super
2023-09-14 09:15:51 时间
- D 的类的顺序的是[D,B,A,C]
- 继承父类的的__init__方法在在类A中已经到终点,
A.mro()
Out[368]: [main.A, object],所以C不再执行
class A:
def __init__(self):
print('A')
class B(A):
def __init__(self):
print('B')
super().__init__()
class C:
def __init__(self):
print('C')
super().__init__()
class D(B,C):
def __init__(self):
print('D')
super().__init__()
d = D()
print(D.mro())
D
B
A
[<class '__main__.D'>, <class '__main__.B'>, <class '__main__.A'>, <class '__main__.C'>, <class 'object'>]
- 很简单当我们转换B,C的位置,类继承的顺序是[D,C,B,A],因为C中有
super().init(),指向B,我们看到 都执行了
class A:
def __init__(self):
print('A')
class B(A):
def __init__(self):
print('B')
super().__init__()
class C:
def __init__(self):
print('C')
super().__init__()
class D(C,B):
def __init__(self):
print('D')
super().__init__()
d = D()
print(D.mro())
D
C
B
A
[<class '__main__.D'>, <class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>]
相关文章
- pandas基础:使用Python pandas Groupby函数汇总数据,获得对数据更好地理解
- 底层逻辑-理解Go语言的本质
- 不可错过!普林斯顿陈丹琦最新《大语言模型理解》2022课程!全面讲述BERT、GPT、T5等大模型,附Slides
- 【Linux】Linux环境变量的理解 --- 命令行参数、shell子进程、环境变量、本地变量…
- Java中BIO,NIO,AIO的理解详解编程语言
- 函数理解Linux atoi函数的重要性(linuxatoi)
- 深入理解 Linux 的 {} 参数:优化脚本编程技巧!(linux参数)
- 探究mongodb:理解这本书的精髓(mongodb的书)
- 燕十八大佬带你复习MySQL,让你深入理解数据存储和查询技术(燕十八mysql复习)
- 深入理解PHP操作MySQL类库的精髓(php操作mysql类库)
- 深入浅出理解Oracle伪列语法(oracle伪列语法)
- JavaScript中__proto__与prototype的关系深入理解
- 深入理解php的MySQL连接类