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 に答える