[python] Dekorovana funkce
Jonas Fiala
dobrouskobrou na seznam.cz
Čtvrtek Červenec 1 12:49:22 CEST 2010
Ahoj,
reaguji na e-mail M. Blazika ohledne detekce dekoratoru, me funguje tento postup (upravil jsem ukazku python kodu):
def deco(func):
def wrap(*args, **kwargs):
return func(*args, **kwargs)
return wrap
def another_deco(func):
def wrap(*args, **kwargs):
return func(*args, **kwargs)
return wrap
def test1():
return 'test1'
@deco
def test2():
return 'test2'
@another_deco
def test3():
return 'test3'
def isDecorated(fce, dec):
if type(fce.func_closure) == tuple:
my = dec(lambda x: x)
if fce.func_code == my.func_code:
return True
return False
if __name__ == '__main__':
lst = [test1, test2, test3]
for function in lst:
if isDecorated(function, deco):
print function.__name__, 'YES'
else:
print function.__name__, 'NO'
--
Jonas Fiala
Další informace o konferenci Python