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>"

我可以在其他地方解压吗?

如果你打印argskwargs,你会发现在kwargs中传递了user(通过调用func(user=xxx))。问题是你通常不能假设参数是如何传递的,所以你应该写成return f"<b>{func(*args, **kwargs)}</b>"