Un argument peut avoir une valeur par défaut dans une fonction Python. Si vous spécifiez des arguments avec des valeurs par défaut, ils doivent venir après les arguments sans valeurs par défaut. Sinon, vous rencontrez une "SyntaxError : un argument différent de celui par défaut suit l’argument par défaut‚" error.
Dans ce guide, nous expliquons ce que signifie cette erreur et pourquoi elle est générée. Nous passons en revue un exemple de cette erreur pour vous aider à comprendre comment la résoudre dans votre code.
Erreur de syntaxe : l’argument non défini par défaut suit l’argument par défaut
Python attribue des arguments à variables dans l’ordre dans lequel elles apparaissent dans un appel de fonction.
Les arguments par défaut doivent précéder les arguments autres que ceux par défaut. En effet, les arguments autres que ceux par défaut sont obligatoires.
Alors que les valeurs par défaut ont une valeur même si aucune n’est spécifiée, un argument autre que celui par défaut n’en a pas. Les arguments par défaut n’ont aucune utilité si vous devez indiquer une valeur pour chacun d’eux.
Considérez le code suivant :
Dans ce code, Python fait sait pas si "John" est affecté à "nom" ou "score". Nous devons utiliser explicitement les valeurs qui doivent être affectées à chaque argument dans notre appel de fonction :
Cette syntaxe est plus détaillée que si vous indiquez simplement les arguments par défaut avant ceux qui ne sont pas par défaut.
81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi dans le domaine technologique après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.
Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.
Alternativement, nous pouvons attribuer un valeur à chaque argument. Cela va à l’encontre du but d’avoir des arguments avec des valeurs par défaut.
Dans une fonction, l’ordre dans lequel les arguments doivent apparaaître est :
- Les arguments de position (non définis par défaut)
- Les arguments de mots clés (par défaut)
- Arguments de mot-clé uniquement (*args)
- Arguments de mot-clé variables (**kwargs)
Si vous ne respectez pas cet ordre, Python renvoie un message d’erreur.
Un exemple de scénario
√âcrivez un programme qui calcule le pourcentage qu’un étudiant a gagné sur un test.