En aquest article, parlarem de com corregir l'error de sintaxi que és l'argument posicional que segueix l'argument de la paraula clau a Python
Un argument és un valor proporcionat a una funció quan la crideu. Per exemple, mireu el programa següent:
Python
# function> def> calculate_square(num):> >return> num>*> num> > > # call the function> result>=> calculate_square(>10>)> print>(result)> |
dibuix de rectangle gimp
>
>Sortida
100>
El calcula_quadrat() la funció pren un argument en una que és una entrada entera o decimal, calcula el quadrat del nombre i retorna el valor.
Paraula clau i arguments posicionals en Python
Hi ha dos tipus d'arguments, a saber, paraula clau i posicional. Com el seu nom indica, l'argument de la paraula clau s'identifica mitjançant una funció en funció d'alguna clau, mentre que l'argument de posició s'identifica en funció de la seva posició a la definició de la funció. Fem una ullada a això amb 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>)> |
>
>
Sortida:
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>
Explicació:
- Durant la primera crida de funció, vam proporcionar 3 arguments amb qualsevol paraula clau. Python s'interpreta per ordre de com s'han definit en la funció que està considerant la posició d'aquestes paraules clau.
- A la segona crida de funció, hem proporcionat 2 arguments, però encara es mostra la sortida perquè hem proporcionat 2 arguments posicionals i la funció té un valor predeterminat per a l'argument final c . Per tant, té en compte el valor predeterminat per a l'argument final.
- A la tercera crida de funció, es proporcionen tres arguments de paraula clau. L'avantatge de proporcionar aquest argument de paraula clau és que no cal que recordeu les posicions, sinó només les paraules clau que es necessiten per a la trucada de funció. Aquestes paraules clau es poden proporcionar en qualsevol ordre, però la funció les prendrà com a parells clau-valor i no en l'ordre en què s'estan passant.
SyntaxError: l'argument posicional segueix l'argument de la paraula clau
En els 3 casos anteriors, hem vist com Python pot interpretar els valors dels arguments que s'estan passant durant una trucada de funció. Ara, considerem l'exemple següent que condueix a a Error de sintaxi .
Python
canvi de mètode 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>)> |
>
>
Sortida:
File '', line 7 foo(a=2, c=3, 9) ^ SyntaxError: positional argument follows keyword argument>
Explicació:
En aquest exemple, l'error s'ha produït a causa de la manera com hem passat els arguments durant la trucada de funció. L'argument posicional d'error segueix l'argument de la paraula clau significa que l'argument de la paraula clau si s'utilitza a la trucada de funció, sempre hauria d'anar seguit d'arguments de paraula clau. Els arguments posicionals es poden escriure al principi abans de passar qualsevol argument de paraula clau. Aquí, a=2 i c=3 són argument de paraula clau. El 3r argument 9 és un argument posicional. El python no pot interpretar-ho en quina clau té quin valor. La manera com funciona Python en aquest sentit és que, primer maparà l'argument posicional i després qualsevol argument de paraula clau si hi ha.
Com evitar l'error - Conclusió
