logo

Jak naprawić: SyntaxError: argument pozycyjny następuje po argumencie słowa kluczowego w Pythonie

W tym artykule omówimy, jak naprawić błąd składniowy polegający na tym, że argument pozycyjny następuje po argumencie słowa kluczowego w Pythonie

Argument to wartość podana funkcji podczas jej wywoływania. Na przykład spójrz na poniższy program –



Pyton






# function> def> calculate_square(num):> >return> num>*> num> > > # call the function> result>=> calculate_square(>10>)> print>(result)>



wycinek tablicy Java
>

>

Wyjście

100>

The oblicz_kwadrat() funkcja przyjmuje argument na jednego który jest liczbą całkowitą lub dziesiętną, oblicza kwadrat liczby i zwraca wartość.

Słowa kluczowe i argumenty pozycyjne w Pythonie

Istnieją dwa rodzaje argumentów, a mianowicie słowa kluczowe i pozycyjne. Jak sama nazwa wskazuje, argument słowa kluczowego jest identyfikowany przez funkcję opartą na jakimś kluczu, natomiast argument pozycyjny jest identyfikowany na podstawie jego pozycji w definicji funkcji. Spójrzmy na to na przykładzie.

Pyton




# 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>)>

>

>

Wyjście:

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>

Wyjaśnienie:

  1. Podczas pierwszego wywołania funkcji podaliśmy 3 argumenty z dowolnym słowem kluczowym. Python interpretował w kolejności, w jakiej zostały zdefiniowane w funkcji uwzględniającej pozycję tych słów kluczowych.
  2. W drugim wywołaniu funkcji podaliśmy 2 argumenty, ale mimo to wynik jest pokazany, ponieważ podaliśmy 2 argumenty pozycyjne, a funkcja ma wartość domyślną dla ostatniego argumentu C . Zatem w ostatecznym argumencie uwzględniana jest wartość domyślna.
  3. W trzecim wywołaniu funkcji podawane są trzy argumenty będące słowami kluczowymi. Zaletą podania tego argumentu słowa kluczowego jest to, że nie trzeba pamiętać pozycji, a jedynie słowa kluczowe wymagane do wywołania funkcji. Te słowa kluczowe można podać w dowolnej kolejności, ale funkcja potraktuje je jako pary klucz-wartość, a nie w kolejności, w jakiej są przekazywane.

SyntaxError: argument pozycyjny następuje po argumencie słowa kluczowego

W powyższych 3 przypadkach widzieliśmy, jak Python może interpretować wartości argumentów przekazywane podczas wywołania funkcji. Rozważmy teraz poniższy przykład, który prowadzi do Błąd składni .

Pyton


plik .tif



# 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>)>

>

>

Wyjście:

File '', line 7 foo(a=2, c=3, 9) ^ SyntaxError: positional argument follows keyword argument>

Wyjaśnienie:

W tym przykładzie błąd wystąpił ze względu na sposób, w jaki przekazaliśmy argumenty podczas wywołania funkcji. Argument błędu pozycyjnego następuje po argumencie słowa kluczowego, co oznacza, że ​​jeśli w wywołaniu funkcji użyto dowolnego argumentu słowa kluczowego, to zawsze powinno po nim następować argumenty słowa kluczowego. Argumenty pozycyjne można zapisać na początku przed przekazaniem argumentu słowa kluczowego. Tutaj, a=2 I c=3 są argumentem słowa kluczowego. Trzeci argument 9 jest argumentem pozycyjnym. Python nie może tego zinterpretować, który klucz przechowuje jaką wartość. Python działa pod tym względem w ten sposób, że najpierw mapuje argument pozycyjny, a następnie dowolny argument słowa kluczowego, jeśli jest obecny.

Jak uniknąć błędu – Podsumowanie