2

我是一名 Java 程序员,Python 编程的初学者。我注意到 python 编程中的意外行为。我期待打印序列作为B class ,A Class构造函数。但它只执行 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()
4

1 回答 1

2

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

您可以像在注释掉的行中那样进行操作。更好的是,您应该使用该super函数来计算出您可以访问哪个父级。但它只适用于新式类(基本上,这意味着类层次结构的根必须继承自object)。

于 2013-05-19T11:52:11.787 回答