Le langage Python permet de définir des fonctions à nombre variable d'arguments. De telles fonctions permettent la manipulation des paramètres via
une liste qui doit être déclarer via un caractère *
. Par exemple : def add( *params )
. Vous pouvez mixer de paramètres nommés
ainsi qu'une liste à nombre variable de paramètres, comme le montre l'exemple ci-dessous.
Voici un petit exemple définissant deux fonctions à nombre variable d'arguments.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#!/usr/bin/python3 # -*- coding : utf-8 -*- # Cette première fonction permet d'ajouter tous les # paramètres numériques passés à la fonction. def add( *arguments ): accumulator = 0 for value in arguments: accumulator += value return accumulator # En second exemple, je vous propose d'essayer de reproduire # la célèbre fonction printf proposée par le langage C. def printf( strFormat, *params ): print( strFormat % tuple( params ), end="" ) # Maintenant, on test nos fonctions à nombre variable de paramètres print( add( 1, 2, 3 ) ) # Affiche 6 print( add( 1, 2, 3, 4, 5 ) ) # Affiche 15 print( add( 1, 2, 3, 100 ) ) # Affiche 106 printf( "[%d/%d]\n", 3, 5 ) # Affiche [3/5] printf( "[%d,%d,%d]\n", 1, 2, 3 ) # Affiche [1,2,3] |
Et voici les résultats produits par l'exemple ci-dessus.
$> ./funcVarArgs.py 6 15 106 [3/5] [1,2,3] $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :