Pythonでスーパーコンストラクタを呼び出すにはどうすればいいですか? 質問する

Pythonでスーパーコンストラクタを呼び出すにはどうすればいいですか? 質問する
class A:
    def __init__(self):
        print("world")

class B(A):
    def __init__(self):
       print("hello")

B()  # output: hello

私がこれまで扱ってきた他のすべての言語では、スーパー コンストラクターは暗黙的に呼び出されます。Python ではどのように呼び出すのでしょうか? 期待はできますsuper(self)が、これは機能しません。

ベストアンサー1

他の回答と同様に、スーパークラス メソッド (コンストラクターを含む) を呼び出す方法は複数ありますが、Python 3 ではプロセスが簡素化されています。

Python3 について

class A(object):
    def __init__(self):
        print("world")

class B(A):
    def __init__(self):
        print("hello")
        super().__init__()

Python 2

Python 2では、少し冗長なバージョンを呼び出す必要がありますsuper(<containing classname>, self)。これはsuper()ドキュメント

class A(object):
    def __init__(self):
        print "world"

class B(A):
    def __init__(self):
        print "hello"
        super(B, self).__init__()

おすすめ記事