If you have some functions with many parameters and you want to specify only some parameters, then you can give values for such parameters by naming them - this is called keyword arguments. We use the name instead of the position which we have been using all along. This has two advantages - One, using the function is easier since we do not need to worry about the order of the arguments. Two, we can give values to only those parameters which we want, provided that the other parameters have default argument values.
Example 7.6. Using Keyword Arguments
#!/usr/bin/python # Filename : func_key.py def func(a, b=5, c=10): print 'a is', a, 'and b is', b, 'and c is', c func(3, 7) func(25, c=24) func(c=50, a=100)
$ python func_key.py a is 3 and b is 7 and c is 10 a is 25 and b is 5 and c is 24 a is 100 and b is 5 and c is 50
The function named func has one parameter without default argument values followed by two parameters with default argument values. In the first usage func(3, 7), the parameter a gets the value 3, the parameter b gets the value 5 and c gets the default value of 10.
In the second usage func(25, c=24), the variable a gets the value of 25 due to the position the argument. Then, the parameter c gets the value of 24 due to naming i.e. keyword arguments. The variable b gets the default value of 5.
In the third usage func(c=50, a=100), we use keyword arguments to specify the values. Notice that we are giving values to parameter c before a here even though a is defined before c in the function definition list.