On Jul 22, 7:31 pm, MICHÁLEK Jan Mgr. wrote:
> To s new mi funguje, to s dekorátorem ne, hlásí mi to blbej syntax při
> použití na třídu, mam python 2.5, není to tím??
>
> -Original Message-
> From: python-boun...@py.cz [mailto:python-boun...@py.cz] On Behalf Of Petr
> Messner
> Sent: Th
To s new mi funguje, to s dekorátorem ne, hlásí mi to blbej syntax při použití
na třídu, mam python 2.5, není to tím??
-Original Message-
From: python-boun...@py.cz [mailto:python-boun...@py.cz] On Behalf Of Petr
Messner
Sent: Thursday, July 22, 2010 3:17 PM
To: Konference PyCZ
Subject:
Ahoj,
mozna to nebude uplne ono, ale dnes dopoledne jsem nahodou narazil
na tohle, treba ti to pomuze:
http://code.activestate.com/recipes/66531-singleton-we-dont-need-no-stinkin-singleton-the-bo/
Jirka
___
Python mailing list
Python@py.cz
http://w
Všem děkuju za rady, du to vyzkoušet, mám tu dva různý přístupy, ale ani jeden
uplně nechápu, nicméně s pomocí Googlu si to snad rozpitvam.
Vřelý díky
(teda pánové, mam z Vás mindrák, na tohle bych sám asi nepřišel)
-Original Message-
From: python-boun...@py.cz [mailto:python-boun...@p
Aha, tak po dostudovani pojmov to nie je pouzitie metaclass ale len
__new__ metody. Tato metoda je zodpovedna za vytvorenie novej
instancie objektu. Priklad ale zostava platny
2010/7/22 Tomáš Drenčák :
> No ja by som pouzil metaclass (staci definovat metodu __new__), vid priklad:
>
> xxx = {}
> cl
Použil bych dekorátor, nějak takto:
def unique(cls):
cache = dict()
def factory(*args, **kwargs):
key = args, tuple(sorted(kwargs.items()))
if key not in cache:
cache[key] = cls(*args, **kwargs)
return cache[key]
return factory
@unique
class Zvire:
No ja by som pouzil metaclass (staci definovat metodu __new__), vid priklad:
xxx = {}
class Xxx(object):
def __new__(cls, param):
global xxx
if param not in xxx:
xxx[param] = super(Xxx, cls).__new__(cls, param)
return xxx[param]
def __init__(self, p
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 = Zvi
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