下面有一个带参数的修饰函数例子
def addition(loge):
print(f"输出修饰器标记:{loge}")
def tes1(func):
print(f"方法{func}加载完毕")
def test(a,b):
print("准备进行func的执行")
func(a,b)
print("func执行完成")
return test
return tes1@addition("这里是修饰器addition")
def test(a,b):
print("func正在执行")
print(f"{a}+{b}={a+b}")addtest = test(12,57)
在test上加一个@addition("这里是修饰器addition")然后执行test = test(12,57),可以看作是以下操作的简化
#test函数不再带有@addition("这里是修饰器addition")的情况
a = addition("这里是修饰器addition")
b = a(test)
addtest = b(12,57)
@addition就是,将被修饰的函数(这里是test)传入嵌套函数addition中进行一下包装,而嵌套函数中的fun代表着将要被传入其中被处理的函数。 至于嵌套函数是什么,请看这里