A Byte of Python

Arguments per nom

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.

Ús dels arguments per nom

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)
				
				

Sortida

				
$ 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
				
				

Com funciona

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ó.