我很难理解如何将参数传递给装饰器内的包装器函数.举一个简单的例子:
def my_decorator(func):
def wrapper(func_arg):
print('Before')
func(func_arg)
print('After')
return wrapper
@my_decorator
def my_function(arg):
print(arg + 1)
my_function(1)
Run Code Online (Sandbox Code Playgroud)
我有一个函数,需要1个参数,它被装饰.我在理解func_arg如何工作方面遇到了麻烦.调用my_function(1)时,值1如何传递给包装器.根据我对此的一点理解,my_function被一个新函数'替换',如:my_function = my_decorator(my_function).
print(my_function)
<function my_decorator.<locals>.wrapper at 0x7f72fea9c620>
Run Code Online (Sandbox Code Playgroud)