2.4.2 装饰器的基本原理
def decorate(origin_func): # 这个参数是被装饰的函数
print(1) # 先输出点东西
return origin_func # 把原函数直接返回
@decorate # 注意这里不是函数调用,所以不用加括号,也不用加被修饰的函数名
def sayHello():
print('Hello')
sayHello() # 如果没有装饰器,只会打印 'Hello',实际结果是打印 1 再打印 'Hello'@decorate
def foo():
passdef foo():
pass
foo = decorate(foo)Last updated