I think答案是否定的,但我似乎找不到明确的说法。我有以下情况;
def decorated_function(function):
@functools.wraps(function)
def my_function():
print "Hello %s" % function.__name__
return my_function
for attr, value in dct.iteritems():
dct[attr] = decorated_function(value)
我真正想要的是类似的东西;
def my_function(function):
print "Hello %s" % function.__name__
for attr, value in dct.iteritems():
dct[attr] = functools.wraps(my_function, value)
删除decorated_function 令人困惑的外壳。装饰器只能在定义函数时应用吗?
您可以在定义函数后对其进行修饰。事实上,函数装饰器只是语法糖。例如,您可以替换
@classmethod
@synchronized(lock)
def foo(cls):
pass
with
def foo(cls):
pass
foo = synchronized(lock)(foo)
foo = classmethod(foo)
See https://www.python.org/dev/peps/pep-0318/ https://www.python.org/dev/peps/pep-0318/了解详情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)