[python] Stejný seznam v různých instancích

Vlado Balko vbalko na gmail.com
Čtvrtek Červen 19 14:06:46 CEST 2008


class Test:
       def __init__(self):
           self.val = []

2008/6/19 Jáchym Barvínek <jachymb na gmail.com>:

> 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?
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/python/attachments/20080619/298d187f/attachment.htm 


Další informace o konferenci Python