我是一名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()
答案 0 :(得分:1)
在python中你应该调用父的初始化器(实际调用__init__
方法的方式, - “构造函数”是显式的。)
你可以像在注释掉的行中那样做。更好的是,您应该使用super
函数来确定哪个父级要为您访问。它只适用于new-style classes(基本上,这意味着,类层次结构的根必须从object
继承)。