python 装饰器笔记
2021/12/23 9:08:56
本文主要是介绍python 装饰器笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
定义:装饰器就是用于拓展原来函数功能的一种函数,在不用更改原函数的代码前提下给函数增加新的功能。其返回值是一个函数。
应用场景:插入日志、性能测试、事务处理、缓存、权限校验等
def dec1(func): print("dec1_1111") def one(): print("dec1_2222") func() print("dec1_3333") return one def dec2(func): print("dec2_aaaa") def two(): print("dec2_bbbb") func() print("dec2_cccc") return two @dec1 @dec2 def test(): print("test test") test() ''' output: dec2_aaaa dec1_1111 dec1_2222 dec2_bbbb test test dec2_cccc dec1_3333 '''View Code
7~20行是装载装饰器的过程,相当于执行了test=dect1(dect2(test)),此时先执行dect2(test),结将func指向函数test、并返回函数two,然后执行dect1(two),将func指向函数two、并返回函数one,然后进行赋值。
替换写法如下
def dec1(two): print("dec1_1111") def one(): print("dec1_2222") two() print("dec1_3333") return one def dec2(test): print("dec2_aaaa") def two(): print("dec2_bbbb") test() print("dec2_cccc") return two # @dec1 # @dec2 ''' 上面的装饰器等价于 test = dec1(dec2(test)) test = dec2(test) test = dec1(test) test() ''' def test(): print("test test") #拆解 test = dec1(dec2(test)) two = dec2(test) #dec2传入的是test,返回的是two one = dec1(two) #dec1传入的是two,返回的是one one() #调用one(),one里的函数是two,two里的函数是testView Code
参考::
https://www.cnblogs.com/shengulong/p/7456442.html
https://blog.csdn.net/xiangxianghehe/article/details/77170585
这篇关于python 装饰器笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-02Python编程基础
- 2024-11-01Python 基础教程
- 2024-11-01用Python探索可解与不可解方程的问题
- 2024-11-01Python编程入门指南
- 2024-11-01Python编程基础知识
- 2024-11-01Python编程基础
- 2024-10-31Python基础入门:理解变量与数据类型
- 2024-10-30Python股票自动化交易资料详解与实战指南
- 2024-10-30Python入行:新手必读的Python编程入门指南
- 2024-10-30Python入行:初学者必备的编程指南