Maison > Article > développement back-end > Pourquoi les arguments autres que ceux par défaut ne peuvent-ils pas suivre les arguments par défaut dans les fonctions Python ?
Comprendre l'erreur de syntaxe dans l'ordre des arguments
Lors de la définition de fonctions en Python, il existe des règles strictes concernant le placement des arguments par défaut. Cet article explique pourquoi les arguments autres que ceux par défaut ne peuvent pas suivre les arguments par défaut dans les définitions de fonctions.
Selon la syntaxe de Python, tous les paramètres requis doivent précéder les paramètres par défaut. En effet, les arguments par défaut représentent des valeurs facultatives qui peuvent être omises lors des appels de fonction. Si les modes mixtes étaient autorisés, l’interprète se heurterait à une ambiguïté syntaxique. Par exemple, considérons la fonction suivante :
def fun1(a="who is you", b="True", x, y): print(a, b, x, y)
Avec cette déclaration, la fonction accepte quatre arguments, et les deux premiers ont des valeurs par défaut. Cependant, placer « x » et « y » avant « a » et « b » créerait une confusion. Comment l'interpréteur déterminerait-il quelles valeurs correspondent à « x » et « y » si elles étaient fournies dans le désordre ?
Pour résoudre ce problème, Python déclenche une SyntaxError si des arguments autres que ceux par défaut suivent les arguments par défaut. En appliquant cette règle, l'interprète s'assure qu'il n'y a pas d'ambiguïté dans l'affectation des arguments.
En revanche, si l'on définit la fonction comme suit :
def fun1(x, y, a="who is you", b="True"): print(a, b, x, y)
Ici, 'x' et ' y' sont désormais des paramètres obligatoires, et 'a' et 'b' ont des valeurs par défaut. Cet ordre permet des appels d'arguments de position ou de mot-clé réguliers sans aucune ambiguïté.
Les arguments de mots-clés permettent des affectations d'arguments dans le désordre ou manquants. Cependant, lorsqu'ils sont utilisés conjointement avec les arguments par défaut, ils peuvent également être utilisés pour « ignorer » les arguments manquants. Par exemple, dans la dernière définition de la fonction, nous pourrions l'appeler ainsi :
fun1(1, a="ok") # Skips 'y' and assigns '1' to 'x' fun1(1, b="ok") # Skips 'y' and 'a'
Cette syntaxe met en évidence la flexibilité des arguments de mots-clés et l'importance d'un ordre approprié des paramètres dans les fonctions Python.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!