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: st...@njs.netlab.cz
_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Reply via email to