當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。