2017-05-26 6 views
0

以下のコードでは、なぜ親と子のIDは同じですか?彼らは違うべきではありませんか?なぜこれらの2つのオブジェクトのIDが同じですか?

class Parent: 
    def __init__(self): 
     print(id(self)) 

class Child(Parent): 
    def __init__(self): 
     print(id(self)) 
     super().__init__() 
Child() 
+2

「self」はインスタンスへの参照であるため、常に同じでなければなりません。 – ekhumoro

+1

'super'を使うと' Child .__ init__'は 'Parent .__ init __(self)'を呼び出すだけで、 'Parent .__ init__'に引数として渡されたのと同じオブジェクトを渡してしまうという事実を覆い隠します。 – chepner

答えて

2

あなたは1つのオブジェクトしか作成していません。 Childと同じIDか、それが継承するParentであるかにかかわらず、同じIDを持ちます。

関連する問題