首页 > 编程语言 > 详细

Python decorator装饰器

时间:2017-05-17 00:07:43      阅读:264      评论:0      收藏:0      [点我收藏+]

问题:

  • 定义了一个新函数
  • 想在运行时动态增加功能
  • 又不想改动函数本身的代码

通过高阶段函数返回一个新函数

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装饰器

原文:http://www.cnblogs.com/bahcelor/p/6864091.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!