1

で複数の派生クラスの基本コンストラクターを呼び出すための正しい構文は何python3ですか?

class A:
    def __init__():
        print("A")

class B:
    def __init__():
        print("B")

class C(A,B):
    def __init__():
        super().__init__() # ???
4

1 に答える 1

1

super親クラスにも呼び出しを入れる必要があります。Cそれがどのように機能するかは、のsuper取得AAsuper取得だと思いますB

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

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

class C(A,B):
    def __init__(self):
        super().__init__()

または、私が好むこの代替のより明示的な構文を使用します

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

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

class C(A,B):
    def __init__(self):
        A.__init__(self)
        B.__init__(self)

これにより、クラスのオブジェクトでおよびクラスの__init__メソッドが呼び出されます。ABC

于 2012-09-12T13:01:02.953 に答える