侧边栏壁纸
博主头像
我的学习心得 博主等级

行动起来,活在当下

  • 累计撰写 223 篇文章
  • 累计创建 60 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

functools.update_wrapper

Administrator
2024-02-19 / 0 评论 / 0 点赞 / 1151 阅读 / 0 字

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),一个字典对象,包含函数参数和返回值的注解信息
0

评论区