În acest articol, vom discuta cum să remediați eroarea de sintaxă care este argumentul pozițional după argumentul cuvântului cheie în Python
Un argument este o valoare furnizată unei funcții atunci când apelați acea funcție. De exemplu, uitați-vă la programul de mai jos -
Piton
# function> def> calculate_square(num):> >return> num>*> num> > > # call the function> result>=> calculate_square(>10>)> print>(result)> |
alternativa mylivecricket
>
>Ieșire
100>
The calculate_square() funcția preia un argument pe unu care este o intrare întreagă sau zecimală, calculează pătratul numărului și returnează valoarea.
Cuvânt cheie și argumente poziționale în Python
Există două tipuri de argumente, și anume, cuvânt cheie și pozițional. După cum sugerează și numele, argumentul cuvânt cheie este identificat de o funcție pe baza unei chei, în timp ce argumentul pozițional este identificat pe baza poziției sale în definiția funcției. Să aruncăm o privire la asta cu un exemplu.
Piton
# 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>)> |
>
>
Ieșire:
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>
Explicaţie:
- În timpul primului apel de funcție, am furnizat 3 argumente cu orice cuvânt cheie. Python este interpretat în ordinea modului în care au fost definite în funcția care ia în considerare poziția acestor cuvinte cheie.
- În al doilea apel de funcție, am furnizat 2 argumente, dar totuși rezultatul este afișat deoarece am furnizat 2 argumente poziționale și funcția are o valoare implicită pentru argumentul final c . Deci, ia în considerare valoarea implicită pentru argumentul final.
- În al treilea apel de funcție, sunt furnizate trei argumente de cuvinte cheie. Avantajul furnizării acestui argument cheie este că nu trebuie să vă amintiți pozițiile, ci doar cuvintele cheie care sunt necesare pentru apelul funcției. Aceste cuvinte cheie pot fi furnizate în orice ordine, dar funcția le va lua ca perechi cheie-valoare și nu în ordinea în care sunt transmise.
SyntaxError: argumentul pozițional urmează argumentul cuvântului cheie
În cele 3 cazuri de mai sus, am văzut cum python poate interpreta valorile argumentelor care sunt transmise în timpul unui apel de funcție. Acum, să luăm în considerare exemplul de mai jos care duce la a Eroare de sintaxă .
Piton
octeți în șir python
# 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>)> |
>
>
Ieșire:
File '', line 7 foo(a=2, c=3, 9) ^ SyntaxError: positional argument follows keyword argument>
Explicaţie:
În acest exemplu, eroarea a apărut din cauza modului în care am transmis argumentele în timpul apelului funcției. Argumentul pozițional de eroare urmează argumentul cuvântului cheie înseamnă că dacă este folosit orice argument al cuvântului cheie în apelul funcției, atunci ar trebui să fie întotdeauna urmat de argumente ale cuvintelor cheie. Argumentele poziționale pot fi scrise la început înainte ca orice argument al cuvântului cheie să fie transmis. Aici, a=2 și c=3 sunt argument de cuvinte cheie. Al 3-lea argument 9 este un argument pozițional. Acest lucru nu poate fi interpretat de python cu privire la ce cheie deține ce valoare. Modul în care funcționează python în acest sens este că va mapa mai întâi argumentul pozițional și apoi orice argument al cuvântului cheie, dacă este prezent.
Cum să evitați eroarea - Concluzie
