from functools import wraps
def logged(func):
@wraps(func)
def with_logging(*args, **kwargs):
print func.__name__ + " was called"
return func(*args, **kwargs)
return with_logging
@logged
def f(x):
"""does some math"""
return x + x * x
print f.__name__ # prints 'f'
print f.__doc__ # prints 'does some math'
在这个示例代码中,我如何使用
@logged(variable)
?我尝试过这样:
from functools import wraps
def logged(func):
def outer(var):
@wraps(func)
def with_logging(*args, **kwargs):
print func.__name__ + " was called"
return func(*args, **kwargs)
return with_logging
return outer
我希望能像这样执行:logged(func)(session_variable)
但是不起作用。 有什么想法吗?我想要能够使用@logged和@logged(var)(甚至是@logged(var1, var2))。 谢谢。
required_params()
装饰器。 - Jason