Pourquoi les arguments par défaut doivent-ils précéder les arguments autres que ceux par défaut dans les fonctions Python ?

Linda Hamilton
Libérer: 2024-11-02 08:20:29
original
437 Les gens l'ont consulté

Why Must Default Arguments Come Before Non-Default Arguments in Python Functions?

Pourquoi les arguments par défaut doivent-ils précéder les arguments autres que ceux par défaut ?

En Python, l'ordre des arguments dans les définitions de fonctions est crucial, en particulier lorsqu'un un mélange d'arguments par défaut et autres que ceux par défaut est impliqué. Cette règle de classement garantit l'interprétation sans ambiguïté des arguments lors des appels de fonction.

Lorsqu'un argument autre que celui par défaut suit un argument par défaut dans la définition de la fonction, comme dans l'exemple suivant, une SyntaxError est levée :

<code class="python">def fun1(a="who is you", b="True", x, y):
    print(a, b, x, y)</code>
Copier après la connexion

Cette erreur se produit car les paramètres obligatoires (non par défaut) doivent toujours précéder les paramètres facultatifs (par défaut) dans la signature de la fonction. Les arguments par défaut remplissent les valeurs d'espace réservé lorsque les arguments sont omis dans les appels de fonction, tandis que les arguments autres que ceux par défaut sont obligatoires.

Si les arguments sont placés dans le mauvais ordre, comme le montre l'exemple ci-dessus, l'interprète ne peut pas déterminer l'affectation correcte. de valeurs aux paramètres de fonction. Il n'est pas clair si la valeur transmise lors d'un appel de fonction correspondrait à l'argument par défaut ou autre.

Pour éviter toute ambiguïté, la syntaxe correcte suivante peut être utilisée :

<code class="python">def fun1(x, y, a="who is you", b="True"):
    print(a, b, x, y)</code>
Copier après la connexion

Mot clé Les arguments peuvent être utilisés avec les arguments par défaut pour fournir des arguments de position dans le désordre ou ignorer les arguments manquants. Par exemple, les arguments par défaut "a" et "b" peuvent être utilisés avec l'appel de fonction suivant :

<code class="python">fun1(1, 2, b="False")</code>
Copier après la connexion

Dans ce cas, les deux premiers arguments positionnels sont affectés à "x" et "y" respectivement, tandis que l'argument mot-clé attribue la valeur "False" à "b", en ignorant la valeur par défaut "True".

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