装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能
器:代表函数的意思。装饰器本质就是是函数
功能:装饰其他函数,就是为其他函数添加附加功能
被装饰函数感受不到装饰器的存在
原则:
不能修改被装饰的函数的源代码(比如线上环境)
不能修改被装饰的函数的调用方式
案列:吃火锅
如果需要点别的或者继续加会非常的麻烦
优化后:
代码:
@feiniu @shucai def guodi(): print("锅底 ¥12") return 12相当于
shucai(feiniu(guodi(0)))