Rechercher
 

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 :

Fonctions à nombre variable de paramètres

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.

Exemple de code

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]
Deux exemples de fonctions à nombre variable de paramètres

Et voici les résultats produits par l'exemple ci-dessus.

$> ./funcVarArgs.py
6
15
106
[3/5]
[1,2,3]
$>