Dans cet article, nous verrons comment corriger l'erreur de syntaxe selon laquelle l'argument de position suit l'argument de mot-clé en Python.
Un argument est une valeur fournie à une fonction lorsque vous appelez cette fonction. Par exemple, regardez le programme ci-dessous –
Python
# function> def> calculate_square(num):> >return> num>*> num> > > # call the function> result>=> calculate_square(>10>)> print>(result)> |
architecture de démarrage à ressort
>
>Sortir
100>
Le calculer_square() la fonction prend un argument sur une qui est une entrée entière ou décimale, calcule le carré du nombre et renvoie la valeur.
Mots-clés et arguments de position en Python
Il existe deux types d'arguments, à savoir le mot-clé et le positionnel. Comme son nom l'indique, l'argument mot-clé est identifié par une fonction basée sur une clé tandis que l'argument positionnel est identifié en fonction de sa position dans la définition de la fonction. Voyons cela avec un exemple.
Python
# function> def> foo(a, b, c>=>10>):> >print>(>'a ='>, a)> >print>(>'b ='>, b)> >print>(>'c ='>, c)> > > # call the functions> print>(>'Function Call 1'>)> foo(>2>,>3>,>8>)> print>(>'Function Call 2'>)> foo(>2>,>3>)> print>(>'Function Call 3'>)> foo(a>=>2>, c>=>3>, b>=>10>)> |
>
>
Sortir:
Function Call 1 a = 2 b = 3 c = 8 Function Call 2 a = 2 b = 3 c = 10 Function Call 3 a = 2 b = 10 c = 3>
Explication:
- Lors du premier appel de fonction, nous avons fourni 3 arguments avec n'importe quel mot-clé. Python interprété dans l'ordre dans lequel ils ont été définis dans la fonction qui prend en compte la position de ces mots-clés.
- Dans le deuxième appel de fonction, nous avons fourni 2 arguments, mais le résultat est toujours affiché car nous avons fourni 2 arguments de position et la fonction a une valeur par défaut pour l'argument final. c . Ainsi, il prend en compte la valeur par défaut pour l’argument final.
- Dans le troisième appel de fonction, trois arguments de mot-clé sont fournis. L'avantage de fournir cet argument de mot-clé est que vous n'avez pas besoin de vous souvenir des positions mais uniquement des mots-clés requis pour l'appel de fonction. Ces mots-clés peuvent être fournis dans n'importe quel ordre, mais la fonction les prendra comme des paires clé-valeur et non dans l'ordre dans lequel ils sont transmis.
SyntaxError : l'argument de position suit l'argument de mot-clé
Dans les 3 cas ci-dessus, nous avons vu comment python peut interpréter les valeurs d'argument transmises lors d'un appel de fonction. Maintenant, considérons l'exemple ci-dessous qui conduit à un Erreur de syntaxe .
Python
égalité des chaînes en Java
# function definition> def> foo(a, b, c>=>10>):> >print>(>'a ='>, a)> >print>(>'b ='>, b)> >print>(>'c ='>, c)> > ># call the function> print>(>'Function Call 4'>)> foo(a>=>2>, c>=>3>,>9>)> |
>
>
Sortir:
File '', line 7 foo(a=2, c=3, 9) ^ SyntaxError: positional argument follows keyword argument>
Explication:
Dans cet exemple, l'erreur s'est produite en raison de la façon dont nous avons passé les arguments lors de l'appel de fonction. L'argument de position d'erreur suit l'argument de mot-clé signifie que si un argument de mot-clé est utilisé dans l'appel de fonction, il doit toujours être suivi d'arguments de mot-clé. Les arguments positionnels peuvent être écrits au début avant qu’un argument mot-clé ne soit transmis. Ici, une=2 et c=3 sont des arguments de mots-clés. Le 3ème argument 9 est un argument de position. Cela ne peut pas être interprété par le python quant à quelle clé contient quelle valeur. La façon dont Python fonctionne à cet égard est la suivante: il mappera d'abord l'argument de position, puis tout argument de mot-clé s'il est présent.
Comment éviter l’erreur – Conclusion
