In diesem Artikel besprechen wir, wie man den Syntaxfehler behebt, bei dem das Positionsargument dem Schlüsselwortargument in Python folgt
Ein Argument ist ein Wert, der einer Funktion bereitgestellt wird, wenn Sie diese Funktion aufrufen. Schauen Sie sich zum Beispiel das folgende Programm an:
Python
# function> def> calculate_square(num):> >return> num>*> num> > > # call the function> result>=> calculate_square(>10>)> print>(result)> |
Reverse-String Java
>
>Ausgabe
100>
Der berechne_quadrat() Funktion nimmt ein Argument auf Auf eins Dies ist eine Ganzzahl- oder Dezimaleingabe, berechnet das Quadrat der Zahl und gibt den Wert zurück.
Schlüsselwort- und Positionsargumente in Python
Es gibt zwei Arten von Argumenten, nämlich Schlüsselwort- und Positionsargumente. Wie der Name schon sagt, wird das Schlüsselwortargument von einer Funktion anhand eines Schlüssels identifiziert, während das Positionsargument anhand seiner Position in der Funktionsdefinition identifiziert wird. Schauen wir uns das anhand eines Beispiels an.
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>)> |
>
>
Ausgabe:
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>
Erläuterung:
- Beim ersten Funktionsaufruf haben wir 3 Argumente mit einem beliebigen Schlüsselwort bereitgestellt. Python interpretiert die Schlüsselwörter in der Reihenfolge, in der sie in der Funktion definiert wurden, und berücksichtigt dabei die Position dieser Schlüsselwörter.
- Im zweiten Funktionsaufruf haben wir zwei Argumente angegeben, aber die Ausgabe wird trotzdem angezeigt, da wir zwei Positionsargumente angegeben haben und die Funktion einen Standardwert für das letzte Argument hat C . Daher wird der Standardwert für das letzte Argument berücksichtigt.
- Im dritten Funktionsaufruf werden drei Schlüsselwortargumente bereitgestellt. Der Vorteil der Bereitstellung dieses Schlüsselwortarguments besteht darin, dass Sie sich nicht die Positionen, sondern nur die Schlüsselwörter merken müssen, die für den Funktionsaufruf erforderlich sind. Diese Schlüsselwörter können in beliebiger Reihenfolge angegeben werden, die Funktion verwendet sie jedoch als Schlüssel-Wert-Paare und nicht in der Reihenfolge, in der sie übergeben werden.
SyntaxError: Positionsargument folgt Schlüsselwortargument
In den oben genannten drei Fällen haben wir gesehen, wie Python die Argumentwerte interpretieren kann, die während eines Funktionsaufrufs übergeben werden. Betrachten wir nun das folgende Beispiel, das zu a führt Syntax-Fehler .
Python
boto3
# 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>)> |
>
>
Ausgabe:
File '', line 7 foo(a=2, c=3, 9) ^ SyntaxError: positional argument follows keyword argument>
Erläuterung:
In diesem Beispiel ist der Fehler auf die Art und Weise zurückzuführen, wie wir die Argumente während des Funktionsaufrufs übergeben haben. Das Fehlerpositionsargument folgt dem Schlüsselwortargument. Dies bedeutet, dass, wenn ein Schlüsselwortargument im Funktionsaufruf verwendet wird, ihm immer Schlüsselwortargumente folgen sollten. Positionsargumente können am Anfang geschrieben werden, bevor ein Schlüsselwortargument übergeben wird. Hier, a=2 Und c=3 sind Schlüsselwortargumente. Das 3. Argument 9 ist ein Positionsargument. Dies kann von Python nicht dahingehend interpretiert werden, welcher Schlüssel welchen Wert enthält. Python funktioniert in dieser Hinsicht so, dass es zuerst das Positionsargument und dann jedes Schlüsselwortargument, falls vorhanden, zuordnet.
So vermeiden Sie den Fehler – Fazit
