A:パイソン:スーパーと__init __()対__init __(自己)
super(BasicElement, self).__init__()
B:
super(BasicElement, self).__init__(self)
AとBの違いは何ですか?私が使っているほとんどの例はAを使っていますが、Aは親の__init__関数を呼び出していないが、Bは問題になっています。これはなぜでしょうか?どちらを使うべきですか?
A:パイソン:スーパーと__init __()対__init __(自己)
super(BasicElement, self).__init__()
B:
super(BasicElement, self).__init__(self)
AとBの違いは何ですか?私が使っているほとんどの例はAを使っていますが、Aは親の__init__関数を呼び出していないが、Bは問題になっています。これはなぜでしょうか?どちらを使うべきですか?
何らかの形でBasicElementクラスの__init__
が引数を取らない限り、この2番目のフォームを実行する必要はありません。
class A(object):
def __init__(self):
print "Inside class A init"
class B(A):
def __init__(self):
super(B, self).__init__()
print "Inside class B init"
>>> b = B()
Inside class A init
Inside class B init
またはinitの引数を必要とするクラスを持つ:
class A(object):
def __init__(self, arg):
print "Inside class A init. arg =", arg
class B(A):
def __init__(self):
super(B, self).__init__("foo")
print "Inside class B init"
>>> b = B()
Inside class A init. arg = foo
Inside class B init
'B'が動作するコードを表示します。 「「A」は呼んでいない」とはどういう意味ですか?間違いはありますか?何が起こるのですか? 'A .__ init__'は' self'以外のパラメータをとりますか? – agf