[python] Třída, která vytvoří instanci jen pokud tam už není instance se stejnými parametry
MICHÁLEK Jan Mgr.
Michalek.Jan na uhul.cz
Čtvrtek Červenec 22 15:04:47 CEST 2010
Ten slovník tam mám, já to umím zachytit, ale neumim udělat to, aby se ta instance nevytvořila přes init,
šlo by udělat
z1= Zvire.pridejZvire('hroch') #a ta metoda bz se podivala do slovniku a buď hotovýho hrocha vrátila, nebo udělala fungl novýho
ale to já nechci, já to chci dělat
z1 = Zvire('hroch')
kdybych to narval do nový tridy tak si stejne nepomuzu, udela se tak jako tak nova instance.
_____
From: python-bounces na py.cz [mailto:python-bounces na py.cz] On Behalf Of Juda Kaleta
Sent: Thursday, July 22, 2010 2:59 PM
To: Konference PyCZ
Subject: Re: [python] Třída, která vytvoří instanci jen pokud tam už není instance se stejnými parametry
Vhodné by bylo mít na vytváření těchto objektů nějakou továrničku - ta by obsahovala slovník s již vytvořeními instancemi ({'pes':..., 'hroch':...}). Při volání metody k vytvoření nového objektu by se kouklo do slovníku, pokud by tam již objekt s tímto klíčem byl, vrátil by se ten, pokud ne, vytvořil by se nový objekt.
Juda Kaleta
E-mail: juda.kaleta na gmail.com
Jabber: yetty na jabber.cz
Dne 22.7.2010 14:50, MICHÁLEK Jan Mgr. napsal(a):
Otázka:
je možné napsat třídu tak, aby vytvořila instanci, jen pokud ještě instance se stejnými parametry ještě neexistuje.
Např:
mám třídu zvíře a chtěl bych, aby se chovala následujícím způsobem
>>> z1 = zvire('hroch')
>>> z1
<__main__.zvire instance at 0x017C1EE0>
>>>
>>> z2 = zvire('pes')
>>> z2
<__main__.zvire instance at 0x017C1760>
>>>
>>> z3 = zvire('hroch')
>>> z3
<__main__.zvire instance at 0x017C1EE0>
>>>
Jde to nějak rozumně (a pochopitelně) udělat??
Je.
Mgr Jan Michálek
oddělení GIS
útvar ISaT
ÚHÚL Brandýs nad Labem
tel.: +420 322 319 886
email: mailto:michalek.jan na uhul.cz
url: http://www.uhul.cz/
__________ Informace od ESET NOD32 Antivirus, verze databaze 5300 (20100722) __________
Tuto zpravu proveril ESET NOD32 Antivirus.
http://www.eset.cz
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python
__________ Informace od ESET NOD32 Antivirus, verze databaze 5300 (20100722) __________
Tuto zpravu proveril ESET NOD32 Antivirus.
http://www.eset.cz
__________ Informace od ESET NOD32 Antivirus, verze databaze 5300 (20100722) __________
Tuto zpravu proveril ESET NOD32 Antivirus.
http://www.eset.cz
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20100722/437b95de/attachment.html>
Další informace o konferenci Python