Maison > développement back-end > Tutoriel Python > Pourquoi les arguments autres que ceux par défaut ne peuvent-ils pas suivre les arguments par défaut dans les fonctions Python ?

Pourquoi les arguments autres que ceux par défaut ne peuvent-ils pas suivre les arguments par défaut dans les fonctions Python ?

Linda Hamilton
Libérer: 2024-11-03 00:38:03
original
1010 Les gens l'ont consulté

Why Can't Non-Default Arguments Follow Default Arguments in Python Functions?

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)
Copier après la connexion

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)
Copier après la connexion

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'
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal