Qualcuno potrebbe spiegarmi il seguente codice.Come creare istanze distinte di una classe in Python?
class InnerTest:
def __init__(self, value = 0):
self.value = value
class OuterTest:
def __init__(self, inner_test = InnerTest()):
self.inner_test = inner_test
a = OuterTest()
b = OuterTest()
a.inner_test.value = 42
print b.inner_test.value
Esso stampa 42, mi aspettavo 0.
Volevo creare due istanze di OuterTest, che conterrebbe un'istanza distinta di InnerTest ciascuna. Invece ho ottenuto due istanze di OuterTest che fanno riferimento alla stessa istanza di InnerTest.
Anche quale sarebbe il modo corretto di implementare quello che volevo per favore?
@PadraicCunningham Non è necessario passare necessariamente un argomento. In tal caso, sarebbe 'None', e quindi è possibile inizializzarlo nella funzione. –
@PadraicCunningham No, il problema non è lo stesso. Se il valore è 'None', in entrambi' a' e 'b', questo creerà 2 diverse istanze di' InnerTest', all'interno di 'if'. –
Questa è la risposta corretta: spiega cosa sta succedendo e fornisce una soluzione pratica per creare istanze distinte mantenendo la comodità dei parametri predefiniti. Grazie. – marcv81