Quan disposem de funcions que tenen molts paràmetres, i només volem especificar alguns d'ells, podem donar-los valor indicant el seu nom d'això se'n diu arguments per nom - fem servir el nom del paràmetre en comptes de la posició per a especificar els arguments de la funció.
Aquesta manera presenta dos avantatges - el primer, facilita l'ús de la funció ja que no ens hem de preocupar per l'ordre dels arguments. I dos, podem donar valors només als paràmetres que vulguem, sempre i quant la resta dels paràmetres tinguin valors per defecte.
Example 7.6. Ús dels arguments per nom
#!/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
La funció func té un únic paràmetre sense valor per defecte, seguit de dos paràmetres que sí en tenen.
A la primera crida, func(3, 7), el paràmetre a rep el valor 3, el paràmetre b rep un 5 i c rep el valor per defecte 10.
A la segona crida, func(25, c=24), el paràmetre a rep un 25 per la posició del argument, el paràmetre c rep un 24 pel seu nom (keyword arguments) i finalment, b rep el seu valor per defecte, 5.
A la tercera crida, func(c=50, a=100), fem servir pas d'arguments per nom per especificar el paràmetre de cada valor que passem. Fixem-nos que estem especificant el valor pel paràmetre c abans del corresponent al paràmetre a, malgrat a apareix abans de c a la definició de la funció.