Positional vs. keyword arguments

Functions can take two different kinds of arguments. A positional argument is just the object itself. A keyword argument is a name assigned to an object.


>>> print('Hello', 'world!', sep=', ')
Hello, world!
The first two strings 'Hello' and 'world!' are positional arguments. The sep=', ' is a keyword argument.

Note A keyword argument can be passed positionally in some cases.

def sum(a, b=1):
    return a + b

sum(1, b=5)
sum(1, 5) # same as above
Sometimes this is forced, in the case of the pow() function.

The reverse is also true:

>>> def foo(a, b):
...     print(a, b)
>>> foo(a=1, b=2)
1 2
>>> foo(b=1, a=2)
2 1

More info
- Keyword only arguments
- Positional only arguments
- /tag param-arg (Parameters vs. Arguments)