Skip to content

En Python, vous pouvez définir des valeurs par défaut pour les paramètres lors de la définition d’une fonction. La valeur par défaut sera utilisée si vous laissez l’argument lors de l’appel de la fonction.

Consultez l’article suivant pour les bases des fonctions en Python.

définir les valeurs de paramètres par défaut pour les fonctions

Si vous utilisez 𝐩‌𝐚‌𝐫‌𝐚‌𝐦‌𝐞‌𝐭‌𝐞‌𝐫‌_𝐧‌𝐚‌𝐦‌𝐞 Dans la définition de fonction, la valeur par défaut sera utilisée lorsque l’argument correspondant est omis pendant l’appel de fonction.

def func_default(arg1, arg2='default_x', arg3='default_y'): print(arg1) print(arg2) print(arg3) func_default('a') # a # default_x # default_y func_default('a', 'b') # a # b # default_y func_default('a', arg3='c') # a # default_x # c 

Contraintes de position des valeurs de paramètres par défaut

Lors de la définition d’une fonction, le fait de placer un paramètre par défaut avant un paramètre ordinaire sans valeur par défaut provoque un S𝐲‌𝐧‌𝐭‌𝐚‌𝐱‌E𝐫‌𝐫‌𝐨‌𝐫‌ .

# def func_default_error(arg2='default_a', arg3='default_b', arg1): # print(arg1) # print(arg2) # SyntaxError: non-default argument follows default argument 

Remarques sur l’utilisation des listes et des dictionnaires comme valeurs par défaut

Si un objet mutable comme une liste ou un dictionnaire est spécifié comme valeur par défaut, il est créé lorsque la fonction est définie et réutilisée lorsque la fonction est appelée sans l’argument correspondant.

Les valeurs des paramètres par défaut sont appliquées de gauche à droite lors de l’exécution de la définition de fonction. Cela signifie que l’expression est réalisée une fois, lors de la définition de la fonction, et que la même valeur « précalculée » est utilisée pour chaque appel.
8. Instructions composées – Définitions de fonctions — Documentation Python 3.11.3

Considérez une fonction qui prend une liste ou un dictionnaire comme valeur de paramètre par défaut et y ajoute des éléments. Lorsque la fonction est appelée plusieurs fois sans cet argument, des éléments seront ajoutés au même objet à plusieurs reprises.

Exemple de liste :

def func_default_list(l=[0, 1, 2], v=3): l.append(v) print(l) func_default_list([0, 0, 0], 100) # [0, 0, 0, 100] func_default_list() # [0, 1, 2, 3] func_default_list() # [0, 1, 2, 3, 3] func_default_list() # [0, 1, 2, 3, 3, 3] 

Exemple pour un dictionnaire :

def func_default_dict(d={'default': 0}, k='new', v=100): d[k] = v print(d) func_default_dict() # {'default': 0, 'new': 100} func_default_dict(k='new2', v=200) # {'default': 0, 'new': 100, 'new2': 200} 

Vous pouvez utiliser N𝐨‌𝐧‌𝐞‌ comme valeur par défaut pour un paramètre. Comme indiqué dans l’exemple suivant, un nouvel objet sera créé chaque fois que la fonction est appelée sans cet argument.

def func_default_list_none(l=None, v=3): if l is None: l = [0, 1, 2] l.append(v) print(l) func_default_list_none() # [0, 1, 2, 3] func_default_list_none() # [0, 1, 2, 3]