I denne artikkelen vil vi diskutere hvordan du kan fikse syntaksfeilen som er posisjonsargument følger nøkkelordargument i Python
Et argument er en verdi gitt til en funksjon når du kaller den funksjonen. Se for eksempel på programmet nedenfor -
Python
# function> def> calculate_square(num):> >return> num>*> num> > > # call the function> result>=> calculate_square(>10>)> print>(result)> |
java unntak
>
>Produksjon
100>
De beregne_kvadrat() funksjonen tar inn et argument på en som er et heltall eller desimal, beregner kvadratet av tallet og returnerer verdien.
Nøkkelord og posisjonsargumenter i Python
Det er to typer argumenter, nemlig nøkkelord og posisjonelle. Som navnet antyder, identifiseres nøkkelordargumentet av en funksjon basert på en nøkkel, mens posisjonsargumentet identifiseres basert på posisjonen i funksjonsdefinisjonen. La oss se på dette med et eksempel.
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>)> |
>
>
Produksjon:
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>
Forklaring:
- Under det første funksjonskallet ga vi 3 argumenter med et hvilket som helst nøkkelord. Python tolket i rekkefølge etter hvordan de har blitt definert i funksjonen som vurderer plasseringen av disse nøkkelordene.
- I det andre funksjonskallet ga vi 2 argumenter, men utdataene vises fortsatt fordi vi ga 2 posisjonsargument og funksjonen har en standardverdi for det siste argumentet c . Så det tar standardverdien i betraktning for det endelige argumentet.
- I det tredje funksjonskallet er tre nøkkelordargumenter gitt. Fordelen med å gi dette søkeordargumentet er at du ikke trenger å huske posisjonene, men bare nøkkelordene som kreves for funksjonskallet. Disse nøkkelordene kan angis i hvilken som helst rekkefølge, men funksjonen tar disse som nøkkelverdi-par og ikke i den rekkefølgen de sendes.
Syntaksfeil: posisjonsargument følger nøkkelordargument
I de ovennevnte 3 tilfellene har vi sett hvordan python kan tolke argumentverdiene som sendes under et funksjonskall. La oss nå vurdere eksemplet nedenfor som fører til en Syntaksfeil .
Python
les excel-fil i 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>)> |
>
>
Produksjon:
File '', line 7 foo(a=2, c=3, 9) ^ SyntaxError: positional argument follows keyword argument>
Forklaring:
I dette eksemplet oppsto feilen på grunn av måten vi har sendt argumentene under funksjonskallet. Feilposisjonsargumentet følger nøkkelordargumentet betyr at hvis et nøkkelordargument brukes i funksjonskallet, skal det alltid følges av nøkkelordargumenter. Posisjonsargumenter kan skrives i begynnelsen før et søkeordargument sendes. Her, a=2 og c=3 er søkeordargument. Det tredje argumentet 9 er et posisjonsargument. Dette kan ikke tolkes av pytonen som hvilken nøkkel som har hvilken verdi. Måten python fungerer i denne forbindelse er at den først vil kartlegge posisjonsargumentet og deretter et hvilket som helst søkeordargument hvis det finnes.
Hvordan unngå feilen – Konklusjon
