[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