[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