我认为答案是肯定的,但我似乎无法找到明确的主张.我有以下情况;
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)
Run Code Online (Sandbox Code Playgroud)
而我真正想要的是这样的;
def my_function(function):
print "Hello %s" % function.__name__
for attr, value in dct.iteritems():
dct[attr] = functools.wraps(my_function, value)
Run Code Online (Sandbox Code Playgroud)
删除decor_function令人困惑的shell.装饰器只能在定义函数时应用吗?