gpt4 book ai didi

python - 为什么在声明子类的对象时不调用父类(super class)的构造函数?

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:38 27 4
gpt4 key购买 nike

我是一名Java程序员,Python编程初学者。我注意到 python 编程中的意外行为。我期望打印序列为 B 类,A 类构造函数。但它只执行 A 的构造函数。

输出为“A 的构造函数”,您能帮我理解执行流程吗?提前致谢

class B:
def __init__(self):
print 'Its constructor of B'

class A(B):
def __init__(self):
print 'Its constructor of A'
#B.__init__(self)

if __name__=='__main__':
obj=A()

最佳答案

在Python中,你应该显式地调用父级的初始化程序(这就是__init__方法实际被调用的方式,“构造函数”是别的东西)。

您可以像在注释掉的行中那样进行操作。更好的是,您应该使用 super 函数来确定要为您访问哪个父级。它仅适用于 new-style classes不过(基本上,这意味着类层次结构的根必须继承自 object)。

关于python - 为什么在声明子类的对象时不调用父类(super class)的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16634311/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com