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__()