class A(object):
def __init__(self):
print('A.__init__()')
class D(A):
def __init__(self):
super(A, self).__init__()
print('D.__init__()')
D()
出力は次のようになります。なぜsuper(A、self).__ init __()はAの__init __()を呼び出さないのですか?
D.__init__()
これは私には予想外です。私の理解によると、super(A, self).__init__()
はA
のコールを呼び出すはずだったので、 "init()"と印刷してください。
私はsuper()
についていくつかの他の質問を読んだことがありますが、私は彼らが私の質問に正確に答えるとは思わないのです。
私のpythonは3.5.3です。
'super(D、self)'または 'super()'に変更しました – vaultah
'super。'よりも直感的な 'A .__ init __(self)'構文が常に見つかりました。 –
vaultahが意味することは、あなたが 'A'の_parent_のコンストラクタを呼び出すことです。 –