代码开发原则:
OCP原则( open close protocol)
def foo():
print("foo")
def bar(func):
func()
bar(foo)
在不动原有代码的基础上,将我们需要的功能添加上去,就是Python的装饰器
Python的装饰器就是一种装饰者设计模式的体现
python利用闭包实现了装饰器
如果被装饰的函数存在参数,则需要在装饰器函数的里面的函数上传递
def hi(name="yasoob"):
return "hi " + name
print(hi())
# output: 'hi yasoob'
# 我们将一个函数赋值给一个变量
greet = hi
print(greet())
# output: 'hi yasoob'
# 如果我们删掉旧的hi函数
del hi
print(hi())
print(greet())
#outputs: 'hi yasoob'
日志(Logging)
日志是装饰器运用的另一个亮点,类也可以用来构建装饰器。