[python] Dekorovana funkce
mykhal
michal.bozon na gmail.com
Středa Červen 23 19:55:07 CEST 2010
.. ještě takhle, pokud chceme dekorovat jen pro dekorování, můžeme si
vytvořit jediný dekorátor, který bude brát argument.
tento dekorátor bude funkci udělovat dekorace to "tajného" atributu
třeba _mydecor
def decorate(decoration):
def do_decor(func):
if hasattr(func, '_mydecor'):
func._mydecor.add(decoration)
else:
func._mydecor = set([decoration])
return func
return do_decor
def isDecorated(func, decoration):
return (decoration in getattr(func, '_mydecor', set()))
@decorate('red')
@decorate('green')
def orangefunc(): pass
print isDecorated(orangefunc, 'green') # -> True
print isDecorated(orangefunc, 'blue') # -> False
Další informace o konferenci Python