Python decorator装饰器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python decorator装饰器相关的知识,希望对你有一定的参考价值。
问题:
- 定义了一个新函数
- 想在运行时动态增加功能
- 又不想改动函数本身的代码
通过高阶段函数返回一个新函数
def f1(x): return x*2 def new_fn(f): #装饰器函数 def fn(x): print (‘call ‘ + f.__name__ + ‘()‘) return f(x) return fn #方法1 g1 = new_fn(f1) print (g1(5)) #方法2 f1 = new_fn(f1) #f1的原始定义函数彻底被隐藏了 print (f1(5)) #输出: #call f1() #10
装饰器
python内置的@语法就是为了简化装饰器
类似上述的方法2
装饰器的作用
可以极大的简化代码,避免每个函数编写重复性代码
- 打印日志:@log
- 检测性能:@performance
- 数据库事务:@transaction
- URL路由:@post(‘/register‘)
以上是关于Python decorator装饰器的主要内容,如果未能解决你的问题,请参考以下文章