python装饰器

之前一直不明白装饰器是个什么东西?


装饰器是Python语言中的高级语法。主要的功能是对一个函数、方法、或者类进行加工,作用是为已经存在的对象添加额外的功能,提升代码的可读性。
装饰器是设计模式的一种,被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。


上面一段话可能作为我这样的新手不太理解,那我就用通俗点的语言把我的理解告诉大家;


比如你现在写了一万个游戏打怪升级的方法,现在产品需求突然要求在打怪升级之前必须装备一把大刀,那你就要在这一万个打怪升级的方法前添加装备大刀的代码,好不容易添好代码后,产品需求又变了,打怪升级前不要装备大刀了,需要装备一把大剑,那么好了,你又得把一万个方法的装备大刀的步骤改成装备大剑;以此类推如此反复的修改,工作量大大增加,装饰器就派上用场了。


再说白一点:装饰器就是在某个方法执行前或执行后所要额外执行的功能


看如下栗子:

#encoding:utf-8
#!/usr/bin/env python

def zhuangshi(fun):#定义装饰器
    def wrapper():
        #print '装备大刀' #如需装备大刀就去掉注释
        fun()
        #print '卸下大刀' #如需装备大刀就去掉注释
    return wrapper

@zhuangshi
def func1():
    print '打怪升级1'
@zhuangshi
def func2():
    print '打怪升级2'
@zhuangshi
def func3():
    print '打怪升级3'

if __name__ == '__main__':
    func1()
    func2()
    func3()


可以复制代码实际运行下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章