[python] Stejný seznam v různých instancích
Jáchym Barvínek
jachymb na gmail.com
Čtvrtek Červen 19 13:31:41 CEST 2008
Narazil jsem na jednu věc která mě docela zarazila (a značně mi vadí v
kódu :)) - totiž že když vytvořím instanci třídy která má jako jeden z
podobjektů seznam, tak pokud do toho seznamu něco přidám přidá se to ale
i do všech ostatních instancí této třídy.
Nějak takto:
class Test:
val = []
some = {1:Test(), 6:Test()}
some[1].val.append("G")
print some[1] == some[6] # False
print some[6].val == some[1].val == ["G"] # True - Proč?
Nenapadá mě nic co bych s tim moh dělat a nebyla by to totální prasárna.
Proč se to děje anebo jak jinak byste to řešili?
Další informace o konferenci Python