python3 装饰器修复技术@wraps到底是什么?
2024-09-03 13:05:57
Python 装饰器中的@wraps的作用:
装饰器的作用: 在不改变原有功能代码的基础上,添加额外的功能,如用户验证等
@wraps(view_func)的作用: 不改变使用装饰器原有函数的结构(如__name__, __doc__)
不使用wraps可能出现的ERROR: view_func...endpoint...map...
如果没使用@wraps,当A调用了装饰器B的话,即使A.name,返回的会是装饰器B的函数名称,而不是A的函数名称
如果使用了@wraps,当A调用了装饰器B的话,A.__name__返回的会是A函数的名称,而不是饰器B的名称,这也即使常说的@wraps是装饰器的修复技术,实际就是修复还原了A的__name__变量,同理__doc__变量也是一样。
具体例子如下:
1.普通函数
2.添加装饰器,但不添加@warps修复
3.添加装饰器修复技术@wraps
最新文章
- 通过ipv6访问 g o o g l e
- [原创]java WEB学习笔记87:Hibernate学习之路-- -映射 继承关系(subclass , joined-subclass,union-subclass )
- 时间函数 time.h 详解
- 剑指Offer:面试题11——数值的整数次方(java实现)
- ios中@class和 #import,两种方式的讨论
- [转] Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine
- jquery图片上传
- 实Schur分解
- 入门前端之HTML
- Spring Mvc Url和参数名称忽略大小写
- SharePoint 2016 配置工作流环境
- PS小实验-去除水印
- Git以及TortoiseGit的下载安装使用
- TLS调试微信
- 将Emacs Org任务树导出至Freeplane思维导图
- Jquery封装的Ajax
- 一键脚本清理DEBIAN系统无用组件 减少系统资源
- 如何判断是否为同一个App,Ionic3如何修改包名
- vue2.0 之事件处理器
- python f-string