简单理解python中的装饰器

来源:互联网 发布:程序员论坛排行榜 编辑:程序博客网 时间:2024/06/10 19:16

pytho中的装饰器可以说是很神秘,本人看了好多文档也是百思不得其解,但是我没有放弃,终于还是搞明白一点了,虽然不全面,但是可以说是了解一点点了吧,
装饰器的作用它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数,用装饰器达到代码重用的效果,比如我们在写日志,性能测试,事务处理,缓存等场景,有了之装饰器我们可以抽离大量与函数本身无关的雷同代码并继续重用,概括的讲,装饰器的作用就是为了已经存在的对象添加额外的功能。

def master(value):  # 3    def text():        print('-----开始执行-----')        value()  # 4        print('-----执行完成-----')    return text@master  # 2def servant():    print('装饰器')servant()  # 1# 首先装饰器这里开始执行 然后发现该函数前面有一个@符号就知道该函数被装饰了# 然后servant作为参数到master的函数中 返回另一个函数text# 如果需要servant的结果就在需要servant的地方调用# 总结来说装饰器就是把需要装饰的函数当做装饰器的参数,然后返回一个新函数,在新函数中实现装饰功能