[python] Dekorátor a přístup do jmenného prostoru třídy
Jirka Vejrazka
jirka.vejrazka na gmail.com
Středa Červenec 23 20:31:14 CEST 2008
>>> Potřeboval bych, aby dekorátor měl přístup k self.bar, aby mohl číst
>>> co je zrovna v té proměnné, na aktuální funkčnost nekoukejte, jenom
>>> jsem chtěl nastínit jak to vypadá. Nevím jak to napsat tak, aby se ten
>>> dekorátor k tomu dostal :( Potřeboval bych totiž uvnitř dekorátoru s
>>> onou self.bar pracovat ..
Nejak takhle?
def dekorator():
def decorate(fce):
def wrapper(*args, **kwargs):
instance = args[0]
# moznost 1: print instance.__dict__['bar']
# moznost 2: print getattr(instance, 'bar')
return wrapper
return decorate
class Foo:
def __init__(self):
self.bar = "promenna"
@dekorator()
def metoda(self):
print "ja jsem metoda"
app = Foo()
app.metoda()
Jirka
Další informace o konferenci Python