1.__name__用来显示函数的名称,__doc__用来显示文档字符串也就是(""“文档字符串”"")这里面的内容

2.首先我们来看不加@wraps的例子

def my_decorator(func):def wrapper(*args, **kwargs):'''decorator'''print('Decorated function...')return func(*args, **kwargs)return wrapper
@my_decorator
def test():"""Testword"""print('Test function')
test()
print(test.__name__, test.__doc__)#输出:
Decorated function...
Test function
wrapper decorator

我们来看执行的整个过程:在调用test()函数时,首先会调用装饰器(将test作为参数传入到装饰器中),执wrapper函数,再执行test函数。

但我们可以看到test函数的名字:__name__为wrapper,__doc__为decorator,已经不是原来的test函数了。

接下来,我们使用@wraps

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from functools import wraps
def my_decorator(func):@wraps(func)def wrapper(*args, **kwargs):'''decorator'''print('Decorated function...')return func(*args, **kwargs)return wrapper
@my_decorator
def test():"""Testword"""print('Test function')
test()
print(test.__name__, test.__doc__)#输出:
Decorated function...
Test function
test Testword

我们会发现,test函数的__name____doc__还是原来的,即函数名称和属性没有变换。

结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!

Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者
https://www.bilibili.com/video/BV1LL4y1h7ny?share_source=copy_web

Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者
https://www.bilibili.com/video/BV1QZ4y1N7YA?share_source=copy_web

python中wraps的详解相关推荐

  1. python的抽象类详解_第7.19节 Python中的抽象类详解:abstractmethod、abc与真实子类...

    第7.19节 Python中的抽象类详解:abstractmethod.abc与真实子类 一. 引言 前面相关的章节已经介绍过,Python中定义某种类型是以实现了该类型对应的协议为标准的,而不是以继 ...

  2. 【 Python 中 int 用法详解】(转载)

    Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...

  3. Python 中 int 用法详解

    Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...

  4. Python中self用法详解

    Python中self用法详解 https://blog.csdn.net/CLHugh/article/details/75000104 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 V ...

  5. python中的字符串详解(附实现文字跑马灯效果)

    python中的字符串详解 1.什么是字符串 ​ 相信大家对字符串应该是再熟悉不过了吧,因为日常生活中的一句话,或是路边的一则广告,其实它都相当于一个字符串,而顾名思义,字符串也就是一串串的由零个或多 ...

  6. python中的GIL详解

    python中的GIL详解 参考Python-- GIL 锁简述 GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念.就 ...

  7. Python 中 with 用法详解

    浅谈 Python 的 with 语句:https://developer.ibm.com/zh/articles/os-cn-pythonwith/ python3,浅谈with的神奇魔法:http ...

  8. python中new方法详解及_Python中new方法的详解

    new_ 方法是什么? __new__方法其实就是创建对象的方法 new()方法是在类准备将自身实例化时调用. 一个类可以有多个位置参数和多个命名参数,而在实例化开始之后,在调用 init()方法之前 ...

  9. python中logging模块详解_python logging日志模块详解

    logging 日志模块详解 用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这 ...

最新文章

  1. bzoj1116 [POI2008]CLO
  2. ABAP如何生成UUID
  3. 深入解析jQuery中的延时对象的概念
  4. android开发蓝牙自动连接电脑上,Android蓝牙开发之自动连接设备
  5. c语言中switch嵌套,C 嵌套 switch 语句 ——jQuery中文网
  6. 优势java_Java的核心优势
  7. Polylink 智能话机之—— e-talk 2200
  8. 终极算法-机器学习和人工智能如何重塑世界:电子书
  9. JAVAWeb汽车销售管理系统
  10. Filezilla server 使用教程
  11. 《沧浪之水》:现实从来不怕谁倔犟
  12. win7不休眠方式设置
  13. 饭饭的零基础神经网络学习笔记——python,numpy,scipy,matplotlib简明教程
  14. day 55 定位流(相对,绝对,固定)
  15. Java动态代理为什么要求必须实现顶级接口
  16. C语言-数据结构-栈(静态栈与动态栈)
  17. 顺序图-循环和分支-操作符的使用
  18. 国外渗透教学——CBT 国外的道德黑客Nuggets
  19. JVM笔记(三):垃圾回收篇
  20. winform 窗体无法显示报错“未声明或从未赋值“解决办法

热门文章

  1. [基础常识]申请免费SSL证书 - 阿里云云盾证书 - Digicert+Symantec 免费型DV SSL
  2. jquery 的ajax请求示例和注意事项
  3. MongoDB(课时18 修改器)
  4. 12864液晶——读写、划点、划线、汉字、32*16的字符
  5. 《Haskell函数式编程入门》——导读
  6. 怎么让经纬度在脑子里不串门?
  7. php : RBAC 基于角色的用户权限控制-表参考
  8. 【百度地图API】如何使用suggestion--下拉列表方式的搜索建议
  9. Infragistics NetAdvantage控件的使用:该关系不是此 DataView 指向的表的父关系
  10. 【ABAP】获取后台Job相关状态