Jak naprawić: syntaxerror: argument pozycyjny następuje po argumencie słowa kluczowego


Błąd, który możesz napotkać w Pythonie to:

 SyntaxError : positional argument follows keyword argument

Ten błąd występuje, gdy używasz argumentu pozycyjnego w funkcji po użyciu argumentu słowa kluczowego .

Oto różnica między nimi:

Argumenty pozycyjne to takie, które nie mają przed sobą „słowa kluczowego”.

  • Przykład: moja_funkcja(2, 2)

Argumenty oparte na słowach kluczowych to takie, które mają przed sobą „słowo kluczowe”.

  • Przykład: moja_funkcja(a=2, b=2)

Jeśli użyjesz argumentu pozycyjnego po argumencie słowa kluczowego, Python zgłosi błąd.

  • Przykład: moja_funkcja(a=2, 2)

Poniższy przykład pokazuje, jak ten błąd może wystąpić w praktyce.

Przykład: Argument pozycyjny następuje po argumencie słowa kluczowego

Załóżmy, że mamy w Pythonie następującą funkcję, która mnoży dwie wartości, a następnie dzieli przez trzecią:

 def do_stuff (a,b):
return a*b/c

Poniższe przykłady pokazują prawidłowe i nieprawidłowe sposoby korzystania z tej funkcji:

Prawidłowy sposób nr 1: wszystkie argumenty pozycyjne

Poniższy kod pokazuje, jak używać naszej funkcji ze wszystkimi argumentami pozycyjnymi:

 do_stuff ( 4,10,5 )

8.0

Nie są generowane żadne błędy, ponieważ Python dokładnie wie, jakich wartości użyć dla każdego argumentu funkcji.

Prawidłowa metoda nr 2: Wszystkie argumenty słów kluczowych

Poniższy kod pokazuje, jak używać naszej funkcji ze wszystkimi argumentami słów kluczowych:

 do_stuff(a= 4 , b= 10 , c= 5 )

8.0

Ponownie nie są zgłaszane żadne błędy, ponieważ Python dokładnie wie, jakich wartości użyć dla każdego argumentu funkcji.

Prawidłowa metoda nr 3: Argumenty pozycyjne przed argumentami dotyczącymi słów kluczowych

Poniższy kod pokazuje, jak używać naszej funkcji z argumentami pozycyjnymi używanymi przed argumentami słów kluczowych:

 do_stuff( 4 ,b= 10 ,c= 5 )

8.0

Nie jest generowany żaden błąd, ponieważ Python wie, że argumentowi należy przypisać wartość 4 .

Nieprawidłowy sposób: argumenty pozycyjne po argumentach słów kluczowych

Poniższy kod pokazuje, jak możemy spróbować użyć funkcji z argumentami pozycyjnymi używanymi po argumentach słów kluczowych:

 do_stuff(a= 4 , 10 , 5 )

SyntaxError : positional argument follows keyword argument

Wystąpił błąd, ponieważ użyliśmy argumentów pozycyjnych po argumentach słów kluczowych.

Konkretnie Python nie wie, czy do argumentów b czy c należy przypisać wartości 10 i 5 , więc nie jest w stanie wykonać funkcji.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:

Jak naprawić błąd KeyError w Pandach
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int
Jak naprawić: Błąd wartości: Nie można rozgłaszać argumentów z kształtami

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *