首页 > 代码库 > Python decorator装饰器
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装饰器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。