logo

Slik løser du: SyntaxError: posisjonsargument følger nøkkelordargument i Python

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:

  1. 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.
  2. 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.
  3. 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