这个有什么用呢?比如日志功能,需要打印出谁在什么时间,调用了什么函数,函数是干啥的,花费了多次时间,这个时候,就需要获取函数的有用信息了
带装饰器的函数
def wrapper(f): # f = func1 def inner(*args,**kwargs): #聚合, args (1,2,3) '''执行函数之前的相关操作''' ret = f(*args,**kwargs) # 打散 1,2,3 '''执行函数之后的相关操作''' return ret return inner@wrapperdef func1(): """ 此函数是完成登陆的功能,参数分别是...作用 。return: 返回值是登陆成功与否(True,False) """ print(666) return Truefunc1()print(func1.__name__)print(func1.__doc__) 执行输出:666inner执行函数之前的相关操作函数装饰之后,相当于执行了inner函数,所以输出inner
为了解决这个问题,需要 调用一个模块wraps
wraps将 被修饰的函数(wrapped) 的一些属性值赋值给修饰器函数(wrapper) ,最终让属性的显示更符合我们的直觉
from functools import wrapsdef wrapper(f): # f = func1 @wraps(f) #f是被装饰的函数 def inner(*args,**kwargs): #聚合args (1,2,3) '''执行函数之前的相关操作''' ret = f(*args,**kwargs) # 打散 1,2,3 '''执行函数之后的相关操作''' return ret return inner@wrapperdef func1(): """ 此函数是完成登陆的功能,参数分别是...作用 。return: 返回值是登陆成功与否(True,False) """ print(666) return Truefunc1()print(func1.__name__)print(func1.__doc__) 执行输出:666func1此函数是完成登陆的功能,参数分别是...作用 。return: 返回值是登陆成功与否(True,False)
推荐阅读
- Python密码系统速查表
- Python爬虫:爬虫所需要的爬虫代理ip是什么?
- python爬取搜索网址的a标签内容
- python 2048游戏源码
- python实现多进程通信实例分析
- 32个常用 Python 实现
- 8 个 Python 实用脚本,收藏备用
- 方便面起源于中国 方便面的历史文化由来
- 一文搞懂Python字符编码问题,值得收藏
- 柚子教大家如何用python做精美的照片墙!五分钟学会get新技能