Python 装饰函数参数
Python Decorated Function Args
我遇到一个奇怪的问题,有时我的修饰函数接收参数,有时不接收参数。
代码如下:
main.py
@Authenticator.authenticate_admin
def action_snapshot(username, token, payload):
.
.
.
authenticator.py
class Authenticator:
@staticmethod
def authenticate_admin(func):
@wraps(func)
def wrapper(*args, **kwargs):
print(f"ARGS: {args}")
# ! Execute function
return func(*args, **kwargs)
return wrapper
因此,如果我尝试像那样调用主函数中的函数:
action_snapshot(username, token, payload)
代码运行良好,我收到了参数。
但是如果我这样称呼它:
action_snapshot(
username=username,
token=token
payload=payload
)
参数为空。
知道为什么吗?
您仍然会收到它们,但是因为您将它们作为 关键字 参数传递,所以它们在 kwargs
而不是 args
我遇到一个奇怪的问题,有时我的修饰函数接收参数,有时不接收参数。
代码如下:
main.py
@Authenticator.authenticate_admin
def action_snapshot(username, token, payload):
.
.
.
authenticator.py
class Authenticator:
@staticmethod
def authenticate_admin(func):
@wraps(func)
def wrapper(*args, **kwargs):
print(f"ARGS: {args}")
# ! Execute function
return func(*args, **kwargs)
return wrapper
因此,如果我尝试像那样调用主函数中的函数:
action_snapshot(username, token, payload)
代码运行良好,我收到了参数。
但是如果我这样称呼它:
action_snapshot(
username=username,
token=token
payload=payload
)
参数为空。
知道为什么吗?
您仍然会收到它们,但是因为您将它们作为 关键字 参数传递,所以它们在 kwargs
而不是 args