侧边栏壁纸
  • 累计撰写 218 篇文章
  • 累计创建 59 个标签
  • 累计收到 5 条评论

functools.update_wrapper

barwe
2024-02-19 / 0 评论 / 0 点赞 / 956 阅读 / 598 字
温馨提示:
本文最后更新于 2024-02-19,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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

评论区