码迷,mamicode.com
首页 > 编程语言 > 详细

Python decorator装饰器

时间:2017-05-17 00:53:52      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:orm   height   style   路由   span   action   作用   new   语法   

问题:

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

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

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

标签:orm   height   style   路由   span   action   作用   new   语法   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!