开放封闭原则:
1.对功能的扩展开放
装饰器:不修改源代码及调用方式的前提下,额外增加新功能
def foo(): print(‘缘起缘灭缘终尽‘) def warpper(func): # func == foo函数的内存地址 def inner(): print(‘花开花落花归尘‘) func() print(‘故事已完‘) return inner # 不能加括号 foo = warpper(foo) # 不能加括号 foo()
def warpper(f): def inner(): print(‘清风以北过南巷‘) f() print(‘南巷故人不知归‘) return inner
# python帮咱们做的一个东西,语法糖 @warpper def func(): print(‘被修饰的函数1‘) @wrapper def index() print(‘被修饰的函数2‘) func() index()
要将语法糖放在被装饰的函数正上方,先执行语法糖
在使用语法糖时,要将装饰器写在语法糖的前面
原文:https://www.cnblogs.com/womenzt/p/12288500.html