[python] Dekorátor - prosím pěkně o konzultaci a vysvětlení
Martin Stiborský
martin.stiborsky na gmail.com
Pondělí Květen 7 23:09:40 CEST 2012
Ahoj,
řekl jsem si, že pro jednu situaci by se mi docela hodil dekorátor, že
by to bylo hezké a vůbec mi to přišlo jako dobrý nápad.
Je to asi poprvé co tenhle syntactic sugar někde vážně používám, takže
jsem s tím trochu bojoval.
Můj dekorátor funguje uvnitř třídy, může si šáhnout na self a bere
argumenty, takže přesně to, co jsem po něm chtěl.
Akorát mi pořád hlava nebere to dvojité zanoření metod (dvojité aby
fungoval ten parametr, došel jsem k tomu víceméně přes pokus-omyl).
Chtěl bych vás poprosit o vysvětlení, co a jak se tam děje, koukám na
to, ale nevím.
Gist je tady https://gist.github.com/2630438, nebo rovnou kód je tady:
class Test(object):
def decorator(bar=True):
def magic(foo):
def magic2(self):
if bar:
print "Hey, bar is here"
print "start magic"
foo(self)
self.try_me()
print "end magic"
return magic2
return magic
@decorator(bar=False)
def bar(self) :
print "ook!"
def try_me(self):
print "Hi there!"
--
S pozdravem
Martin Stiborský
Jabber: stibi na njs.netlab.cz
Další informace o konferenci Python