So beheben sie: syntaxerror: das positionsargument folgt dem schlüsselwortargument


Ein Fehler, der in Python auftreten kann, ist:

 SyntaxError : positional argument follows keyword argument

Dieser Fehler tritt auf, wenn Sie ein Positionsargument in einer Funktion verwenden, nachdem Sie ein Schlüsselwortargument verwendet haben.

Hier ist der Unterschied zwischen den beiden:

Positionsargumente sind solche, denen kein „Schlüsselwort“ vorangestellt ist.

  • Beispiel: my_function(2, 2)

Schlüsselwortargumente sind solche, vor denen ein „Schlüsselwort“ steht.

  • Beispiel: my_function(a=2, b=2)

Wenn Sie nach einem Schlüsselwortargument ein Positionsargument verwenden, gibt Python einen Fehler aus.

  • Beispiel: my_function(a=2, 2)

Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis auftreten kann.

Beispiel: Ein Positionsargument folgt einem Schlüsselwortargument

Angenommen, wir haben die folgende Funktion in Python, die zwei Werte multipliziert und dann durch ein Drittel dividiert:

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

Die folgenden Beispiele zeigen gültige und ungültige Möglichkeiten zur Verwendung dieser Funktion:

Gültiger Weg Nr. 1: alle Positionsargumente

Der folgende Code zeigt, wie Sie unsere Funktion mit allen Positionsargumenten verwenden:

 do_stuff ( 4,10,5 )

8.0

Es werden keine Fehler generiert, da Python genau weiß, welche Werte für jedes Funktionsargument verwendet werden müssen.

Gültige Methode Nr. 2: Alle Schlüsselwortargumente

Der folgende Code zeigt, wie Sie unsere Funktion mit allen Schlüsselwortargumenten verwenden:

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

8.0

Auch hier werden keine Fehler ausgegeben, da Python genau weiß, welche Werte für jedes Funktionsargument verwendet werden müssen.

Gültige Methode Nr. 3: Positionsargumente vor Schlüsselwortargumenten

Der folgende Code zeigt, wie Sie unsere Funktion mit Positionsargumenten verwenden, die vor Schlüsselwortargumenten verwendet werden:

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

8.0

Es wird kein Fehler generiert, da Python weiß, dass dem Argument an der Wert 4 zugewiesen werden sollte.

Ungültige Methode: Positionsargumente nach Schlüsselwortargumenten

Der folgende Code zeigt, wie wir versuchen können, die Funktion mit Positionsargumenten zu verwenden, die nach den Schlüsselwortargumenten verwendet werden:

 do_stuff(a= 4 , 10 , 5 )

SyntaxError : positional argument follows keyword argument

Es wird ein Fehler ausgegeben, weil wir Positionsargumente nach Schlüsselwortargumenten verwendet haben.

Konkret weiß Python nicht, ob den Argumenten b oder c die Werte 10 und 5 zugewiesen werden sollen, sodass es die Funktion nicht ausführen kann.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:

So beheben Sie KeyError in Pandas
So beheben Sie: ValueError: Float NaN kann nicht in int konvertiert werden
So beheben Sie: ValueError: Operanden konnten nicht mit Formen übertragen werden

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert