python装饰器简单学习01
2021/8/2 1:06:00
本文主要是介绍python装饰器简单学习01,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、什么是装饰器
python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。二、如何实现装饰器
示例一:
上述例子中通过装饰函数login()函数实现了登录功能,add_to_shopcar这个函数作为参数被传入login函数,从而实现了登录。
示例二:
通过语法糖的方式实现装饰器
由于 @login 完全等价于add_to_shopcar = login(add_to_shopcar),所以在我们执行 login(add_to_shopcar) 之后返回的函数是装饰函数deco_login,而不是add_to_shopcar。但这与装饰器的初衷是相违背的:不改变原函数的情况下,增加函数功能,使用装饰器改变了原函数的元信息.__name__、.__docstring__等信息。
那么如何才能是被装饰函数的元信息不改变呢,在这里我么使用python内置的装饰器 @wraps,
@wraps 的作用:避免装饰器对原函数的元信息进行更改,比如函数的docstring,__name__,等参数列表,格式:@wraps(被装饰函数名称)。使用试试看看三、带参数的情况
被装饰函数本身带参数,那么在装饰函数的参数必须与被装饰函数保持一致。
原函数多个参数
四、类装饰器
指装饰器本身是一个类,类装饰器需要实现2个方法:__init__、__call__方法。
当类装饰器本身不带任何参数时,__init__:接受被装饰函数、__call__:实现装饰逻辑。
当类装饰器带参数的情况:__init__:接受参数、__call__:接受被装饰参数和实现装饰逻辑,举例如下。
备注:学习装饰器,可以先学习python的闭包函数:参考:https://blog.csdn.net/u013380694/article/details/90019571?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control
装饰器的高阶用法参考:http://www.360doc.com/content/19/0602/18/40585874_839852693.shtml
记录学习 有错误,感谢斧正。
这篇关于python装饰器简单学习01的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享