Intermediate·6 min·intermediate · functions
*args and **kwargs
*args and **kwargs
*argscollects extra positional arguments into a tuple.**kwargscollects extra keyword arguments into a dict.
Forwarding
fn(*args, **kwargs) is how every decorator and wrapper passes arguments through transparently.
The reverse — unpacking
fn(*[1, 2, 3]) unpacks a list as positional args.
fn(**{"a": 1}) unpacks a dict as keyword args.
Try it
- Write a
max_of(*nums)that returns the largest. - Write a
build_url(host, **params)that returnshost?key=value&....