update_wrapper
用来同步装饰器函数和原始函数的信息,使装饰器函数看起来更像原始函数。
from functools import update_wrapper
定义:
def update_wrapper(wrapper, wrapped, assigned = WRAPPER_ASSIGNMENTS, updated = WRAPPER_UPDATES) => wrapper
wrapper
: 需要更新信息的装饰器函数wrapped
: 被装饰函数,即原始函数assigned
: 同步哪些原始函数的属性,默认('__module__', '__name__', '__qualname__', '__doc__', '__annotations__')
updated
: 更新装饰器函数的哪些属性,默认('__dict__',)
assigned 是直接将原始函数的属性赋给装饰器函数,updated 是将原始函数的属性(一般是字典)更新到装饰器函数中。
__module__
: 函数所属的模块名称__name__
: 函数名称__qualname__
: 函数的限定名称(Qualified Name),即包含模块名称和类名称(如果是在类中定义的)的完整名称__doc__
: 函数的文档字符串(Docstring),即函数的说明文档__annotations__
: 函数的注解(Annotations),一个字典对象,包含函数参数和返回值的注解信息
评论区