Une valeur par défaut permet de rendre un paramètre optionnel : si l'appelant ne le fournit pas, la valeur par défaut est utilisée.
Syntaxe
def nom(param_obligatoire, param_optionnel=valeur_par_defaut):
...Les paramètres avec valeur par défaut doivent venir après ceux sans valeur par défaut.
def f(a, b=1): ✅
def f(a=1, b): ❌ SyntaxError
Exemple
def puissance(n, exp=2):
return n ** exppuissance(3) → 9 (exp prend la valeur par défaut 2 → 3²)
puissance(2, 10) → 1024 (exp=10 explicitement → 2¹⁰)
puissance(5, exp=3) → 125 (forme nommée, plus lisible)positionnel : passé dans l'ordre des paramètres
f(5, 10, 'rouge')nommé : passé avec param=valeur (peu importe l'ordre)
f(taille=10, couleur='rouge', x=5)Mélange autorisé, mais positionnels d'abord puis nommés :
f(5, couleur='rouge', taille=10) ✅
Ne jamais mettre [] ou {} comme valeur par défaut, car la liste est partagée entre tous les appels :
def ajoute(x, liste=[]): # ❌ piège
liste.append(x)
return listeajoute(1) → [1]
ajoute(2) → [1, 2] (on attendait [2] !)La bonne forme
def ajoute(x, liste=None):
if liste is None:
liste = []
liste.append(x)
return listeEnvie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →