当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python functools.wraps用法及代码示例


用法:

@functools.wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)

这是一个方便的函数,用于在定义包装函数时调用 update_wrapper() 作为函数装饰器。它相当于 partial(update_wrapper, wrapped=wrapped, assigned=assigned, updated=updated) 。例如:

>>> from functools import wraps
>>> def my_decorator(f):
...     @wraps(f)
...     def wrapper(*args, **kwds):
...         print('Calling decorated function')
...         return f(*args, **kwds)
...     return wrapper
...
>>> @my_decorator
... def example():
...     """Docstring"""
...     print('Called example function')
...
>>> example()
Calling decorated function
Called example function
>>> example.__name__
'example'
>>> example.__doc__
'Docstring'

如果不使用此装饰器工厂,示例函数的名称将是 'wrapper' ,原始 example() 的文档字符串将丢失。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 functools.wraps。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。