解决方法:使用funtools中的装饰器wraps装饰的内部包裹函数,可以制定将原函数的某些属性更新到包裹函数上面。
from functools import wraps, update_wrapper,WRAPPER_ASSIGNMENTS, WRAPPER_UPDATES
def mydecorator(func):
@wraps(func)
def wrapper(*args, **kargs):
'''wrapper function'''
print('In wrapper')
func(*args, **kargs)
# update_wrapper(wrapper, func)
return wrapper
@mydecorator
def example():
'''example function'''
print('In example')
print(example.__name__, example.__doc__)
本文介绍了一个使用Python的functools模块中wraps装饰器的方法,该装饰器可以在不改变被装饰函数元信息的情况下,更新包裹函数的属性。通过具体代码示例展示了如何使装饰器保留原函数的名称和文档字符串。
812

被折叠的 条评论
为什么被折叠?



