Warum ist es in Python illegal, Nicht-Standardargumente nach Standardargumenten zu deklarieren?

Patricia Arquette
Freigeben: 2024-11-01 18:09:30
Original
932 Leute haben es durchsucht

Why is it Illegal to Declare Non-Default Arguments After Default Arguments in Python?

Warum ist es illegal, Nicht-Standardargumente nach Standardargumenten zu deklarieren?

In Python ist es wichtig, die richtige Reihenfolge der Argumente einzuhalten beim Definieren einer Funktion. Nicht-Standardargumente müssen vor allen Standardargumenten stehen. Diese Einschränkung ergibt sich aus der Tatsache, dass erforderliche Parameter vor optionalen Parametern (Standardargumenten) angegeben werden müssen.

SyntaxError: Nicht-Standardargument folgt Standardargument

Dieser Fehler tritt auf wenn Sie eine Funktion mit nicht standardmäßigen Argumenten nach Standardargumenten deklarieren, wie im folgenden Beispiel:

<code class="python">def fun1(a="who is you", b="True", x, y):
    print(a, b, x, y)</code>
Nach dem Login kopieren

Unerwartetes Zuweisungsproblem

Mischung von Standard und Nicht-Standard Argumente führen zu syntaktischer Mehrdeutigkeit. Betrachten wir Funktionsaufrufe mit der obigen Funktion:

<code class="python">func1("ok a", "ok b", 1)  # Is 1 assigned to x or a?
func1(1)                  # Is 1 assigned to a or x?
func1(1, 2)               # Which arguments are mapped to which parameters?</code>
Nach dem Login kopieren

In solchen Fällen ist es für den Interpreter unmöglich, die richtigen Zuweisungen zu bestimmen.

Referenz zu O'Reilly - Core-Python

Gemäß O'Reilly - Core-Python sollten alle erforderlichen Parameter vor allen Standardargumenten in einer Funktionsdefinition stehen. Dadurch wird sichergestellt, dass die Funktion mit dem minimalen Satz erforderlicher Parameter aufgerufen werden kann.

Aufruf von Schlüsselwortargumenten

Schlüsselwortargumente ermöglichen Positionsargumente außerhalb der Reihenfolge und können übersprungen werden über fehlende Argumente, wenn sie in Verbindung mit Standardargumenten verwendet werden. Beispielsweise ist der folgende Funktionsaufruf mit Schlüsselwortargumenten syntaktisch korrekt:

<code class="python">def fun1(x, y, a="who is you", b="True"):
    print(a, b, x, y)

# Call with keyword arguments
fun1(4, y=5, a="Python is awesome")</code>
Nach dem Login kopieren

Fazit

Um SyntaxError zu vermeiden und den logischen Ablauf der Zuweisung von Argumenten zu Parametern aufrechtzuerhalten, Es ist wichtig, sich die richtige Platzierung von Argumenten innerhalb einer Funktionsdefinition zu merken. Deklarieren Sie immer erforderliche Parameter (nicht standardmäßige Argumente) vor allen optionalen Parametern (Standardargumente).

Das obige ist der detaillierte Inhalt vonWarum ist es in Python illegal, Nicht-Standardargumente nach Standardargumenten zu deklarieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage