Liste et paramètre de fonction en python
05/03/2004
Python et les paramètres de fonctions où comment faire la correspondance entre un type complexe et une liste de paramètres.
>>> def fct(p1,p2,p3,p4):
print "p1=%s\tp2=%s\tp3=%s\tp4=%s"%(p1,p2,p3,p4)
>>> li=["pauillac", 1973, 1.0, 'a']
>>> fct(*li)
p1=pauillac p2=1973 p3=1.0 p4=a
>>> apply(fct, li)
p1=pauillac p2=1973 p3=1.0 p4=a
>>> di={"a":1, "b":2, "c":3, "d":4}
>>> fct(*di)
p1=a p2=c p3=b p4=d
>>> apply(fct, di.keys())
p1=a p2=c p3=b p4=d
>>> apply(fct, di.values())
p1=1 p2=3 p3=2 p4=4
>>> tup=(23,34,56,99)
>>> fct(*tup)
p1=23 p2=34 p3=56 p4=99
attention, il y a quand même un contrôle sur la taille entre ce qui est demandé et ce qui est fourni…
>>> fct(*li)
Traceback (most recent call last):
File "<pyshell #43>", line 1, in -toplevel-
fct(*li)
TypeError: fct() takes exactly 4 arguments (5 given)