I’m learning flask and i want to unpack args in inner function. That’s my code:
JavaScript
x
11
11
1
def make_bold(func):
2
def inner(*args, **kwargs):
3
return f"<b>{func(args[0])}</b>"
4
return inner
5
6
7
@app.route("/username/<user>")
8
@make_bold
9
def username(user):
10
return f"Username: {user}"
11
I’m getting an arror “tuple index out of range” even if I add next asterix in
JavaScript
1
2
1
return f"<b>{func(*args[0])}</b>"
2
Can I unpack it anywhere else?
Advertisement
Answer
If you print args
and kwargs
, you will find that user
is passed in kwargs
(by calling func(user=xxx)
). The problem is that you usually cannot assume how the arguments are passed, so you should write return f"<b>{func(*args, **kwargs)}</b>"
instead.