Форум сайта python.su
def log(func):
def wraper(*a, **kw):
return func(*a, **kw)
return wraper
@log
def f():
print 'f'
print locals()['f'] # - выдаст <function wraper at 0x00CBF3F0>. Как добраться до объекта реальной ф-и f?
Офлайн
ostroglazскорее так:
Имеете ввиду что-то типа этого?def log(func):
def wraper(*a, **kw):
return func(*a, **kw)
return wraper
@log
def f():
print 'f'
a = locals()['f']
a()
from functools import wraps
def log(func):
@wraps(func)
def wraper(*a, **kw):
return func(*a, **kw)
return wraper
@log
def f():
print 'f'
print locals()['f']
Отредактировано (Март 10, 2010 03:50:25)
Офлайн
Есть еще один вариант прикрепить f, к wraper как аттрибут.
Офлайн
>>> f.func_closure[0].cell_contents
<function f at 0x02BD3770>
Отредактировано (Март 11, 2010 19:41:34)
Офлайн