0

可能重复:
子类 __init__ 覆盖超类的

class A():
    z = 'z it is'
    def __init__(self):
        self.a = 'a it is'

class B(A):
    def __init__(self):
        self.b = 'b it is'

b = B()
print b.z # z it is 
print b.a # AttributeError: B instance has no attribute 'a'

bB是从类继承的类的实例A。这不意味着我可以访问父类的属性吗?

4

2 回答 2

5

您需要显式调用超类__init__。它不会自动调用。

于 2012-12-24T00:57:08.063 回答
0

B类中的__init__函数应该这样写:

class B(A):
    def __init__(self):
        A.__init__(self)
        self.b = "b it is"
于 2012-12-24T01:12:30.167 回答