In Python, what's the difference between arguments having default values:
def f(a,b,c=1,d=2): pass
and keyword arguments:
def f(a=1,b=2,c=3): pass
? I guess there's no difference, but the tutorial has two sections:
4.7.1. Default Argument Values
4.7.2. Keyword Arguments
which sounds like there are some difference in them. If so, why can't I use this syntax in 2.6:
def pyobj_path(*objs, as_list=False): pass
?
Keyword arguments are how you call a function.
f( a=1, b=2, c=3, d=4 )
Default values are how a function is defined.
Default arguments mean you can leave some parameters out. Instead of f(1, 2, 3) you can just write f(1) or f(1, 2).
Keyword arguments mean you don't have to put them in the same order as the function definition. Instead of f(1, 2, 3) you can do f(c=3, b=2, a=1).
*args and/or **kwargs must always come at the end of the argument list in a function declaration, if they are present. Specifically:
def <function name>(
[<args without defaults>,]
[<args with defaults>,]
[*<variable length positional argument list name>,]
[**<arbitrary keyward argument dict name>]
):
<function body>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With