[python] Praca s polom, navedte ma na spravnu cestu
Jiri Vit
jirivit na jirivit.com
Čtvrtek Únor 8 11:16:26 CET 2007
problem je v tom, ze definujete arr jako tridni promennou, kterou si instance
sdileji. Pokud chcete clenskou promennou je treba ji vytvorit takto:
class cSet:
def __init__(self):
self.arr = []
Zdravi
Jiri Vit
---------- Original Message -----------
From: "msk.conf" <msk.conf na seznam.cz>
To: python na py.cz
Sent: Thu, 8 Feb 2007 10:51:34 +0100
Subject: [python] Praca s polom, navedte ma na spravnu cestu
> Ahoj.
>
> Ako dlhorocny programator c++ som sa rozhodol trosku zacat s
> pythonom, ale som znacne konsternovany.
>
> Uvediem priklad:
>
> # definujem classu, obsahuje jedno pole ako member
> class cSet:
> arr = []
>
> # pole, kde uchovam niekolko cSet-ov
> list = []
>
> # napln pole
> for i in range ( 3 ):
> cset = cSet()
> cset.arr.append ( "lama" + str ( i ) )
> list.append(cset)
>
> # vysledok
> for i in list:
> print i.arr
>
> Vypise to:
> ['lama0', 'lama1', 'lama2']
> ['lama0', 'lama1', 'lama2']
> ['lama0', 'lama1', 'lama2']
>
> Namiesto:
> ['lama0']
> ['lama1']
> ['lama2']
>
> Pride mi to ako dost podivne chovanie, predpokladam, ze to suvisi s
> inym pristupom k referenciam na objekty, ako v c++ a ze na zaciatku
> for cyklu sa nevyrvori ( z mne neznameho dovodu ) novy objekt typu
> cSet a pouzije sa ten z predoslej alokacie.
>
> Mozete mi to niekto vysvetlit?
>
> Dik
>
> --
> Dusan
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
------- End of Original Message -------
Další informace o konferenci Python