热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python中wraps作用

functools.wraps的作用是将原函数对象的指定属性复制给包装函数对象,默认有module、name、doc,或者通过参数选择。importfunctoolsdefitc

functools.wraps 的作用是将原函数对象的指定属性复制给包装函数对象, 默认有 modulenamedoc,或者通过参数选择。

import functoolsdef itcast1(fun):# 带参数的装饰器#wraps是用来将inner函数的属性设置为fun的属性值@functools.wraps(fun)def inner(*args, **kwargs):print("itcast1 start")fun(*args, **kwargs)print("itcast1 end")return inner

上述代码可表示为:

# def itcast1(fun):#     def inner(*args, **kwargs):#        print("itcast1 start")#        fun(*args, **kwargs)#        print("itcast1 end")#    inner.__name__ = fun.__name__#    inner.__doc__ = fun.__doc__#     return inner

>>> @itcast1
... def say_hello():
... print('say_hello')
...
>>> print(say_hello.__name__)
say_hello

若itcast1中没有使用wraps:

>>> def itcast1(fun):
... def inner(*args, **kwargs):
... print('itcast1 start')
... fun(*args, **kwargs)
... print("itcast1 end")
... return inner
...
>>> @itcast1
... def say_hello():
... print('say_hello')
...
>>> print(say_hello.__name__)
inner
>>> say_hello()
itcast1 start
say_hello
itcast1 end

 


推荐阅读
author-avatar
我细细
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有