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