代码之家  ›  专栏  ›  技术社区  ›  Rounded Hedgehog

Args不解包

  •  0
  • Rounded Hedgehog  · 技术社区  · 2 年前

    我正在学习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}"
    

    我得到了一个arror“元组索引超出范围”,即使我添加了下一个asterix

    return f"<b>{func(*args[0])}</b>"
    

    我能在其他地方打开它吗?

    1 回复  |  直到 2 年前
        1
  •  1
  •   QuarticCat    2 年前

    如果你打印 args kwargs ,你会发现 user 被传了进来 关键字参数 (打电话 func(user=xxx) )问题是你通常不能假设参数是如何传递的,所以你应该写 return f"<b>{func(*args, **kwargs)}</b>" 相反