Python : Les fonctions : Nombre de paramètres variable
Voici comment écrire une fonction dont le nombre de paramètres peut être variable.
Deux formes possibles d'écritures :
1/ *ident1 : l'appel à la fonction fournit un nombre variable de paramètres (param. par position)
2/ **ident2 : l'appel à la fonction fournit un nombre variable de paramètres (param. par nom)
Mais voyons plutôt des exemples, ce qui aidera à la compréhension
Méthode 1/
Code :
#!/usr/bin/env python
def total(*nb):
return sum(nb)
print total(15, 55, 102, 300)
Résultat :
./somme1.py
472
Méthode 2/
Code :
#!/usr/bin/env python
def operation(**cle):
total = cle['valeur']
if 'add' in cle:
total += cle['add']
if 'mult' in cle:
total *= cle['mult']
return total
print operation(valeur = 10, add = 50, mult = 5)
Résultat :
./somme2.py
300
Sachez qu'il est également possible de combiner les deux formes.
Dans ce cas, la forme * sera placée avant **
Code :
#!/usr/bin/env python
def operation(*nb, **cle):
total = cle['valeur']
if 'add' in cle:
total += cle['add']
if 'mult' in cle:
total *= cle['mult']
return sum(nb), total
print operation(10, 20, 30, valeur = 10, add = 50, mult = 5)
Résultat :
./somme2.py
(60, 300)