Args 不解压
Args do not unpack
我正在学习 flask,我想在内部函数中解压 args。那是我的代码:
def make_bold(func):
def inner(*args, **kwargs):
return f"<b>{func(args[0])}</b>"
return inner
@app.route("/username/<user>")
@make_bold
def username(user):
return f"Username: {user}"
即使我在
中添加下一个星号,我也会收到“元组索引超出范围”的错误消息
return f"<b>{func(*args[0])}</b>"
我可以在其他地方解压吗?
如果你打印args
和kwargs
,你会发现在kwargs
中传递了user
(通过调用func(user=xxx)
)。问题是你通常不能假设参数是如何传递的,所以你应该写成return f"<b>{func(*args, **kwargs)}</b>"
。
我正在学习 flask,我想在内部函数中解压 args。那是我的代码:
def make_bold(func):
def inner(*args, **kwargs):
return f"<b>{func(args[0])}</b>"
return inner
@app.route("/username/<user>")
@make_bold
def username(user):
return f"Username: {user}"
即使我在
中添加下一个星号,我也会收到“元组索引超出范围”的错误消息return f"<b>{func(*args[0])}</b>"
我可以在其他地方解压吗?
如果你打印args
和kwargs
,你会发现在kwargs
中传递了user
(通过调用func(user=xxx)
)。问题是你通常不能假设参数是如何传递的,所以你应该写成return f"<b>{func(*args, **kwargs)}</b>"
。