带参数的函数修饰器
带参数的函数修饰器
相比较不带参数的修饰器,需要在外层多一个接受参数的函数,形成函数的三层嵌套结构。
def func():
print('function run')
def repeat_func(n):
def wrapper(func):
def inner():
print('before function run')
for i in range(n):
func()
print('after function run')
return inner
return wrapper
不带参数的函数修饰器
相较于带参数的函数修饰器,不带参数的函数修饰器会更简单,少了外面一层负责接收传递参数的外层函数。