Warum müssen in Python-Funktionen Standardargumente vor Nicht-Standardargumenten stehen?

Linda Hamilton
Freigeben: 2024-11-02 08:20:29
Original
436 Leute haben es durchsucht

Why Must Default Arguments Come Before Non-Default Arguments in Python Functions?

Warum müssen Standardargumente vor Nicht-Standardargumenten stehen?

In Python ist die Reihenfolge der Argumente in Funktionsdefinitionen entscheidend, insbesondere wenn a Dabei handelt es sich um eine Mischung aus Standard- und Nicht-Standardargumenten. Diese Ordnungsregel gewährleistet die eindeutige Interpretation von Argumenten bei Funktionsaufrufen.

Wenn ein Nicht-Standardargument auf ein Standardargument in der Funktionsdefinition folgt, wie im folgenden Beispiel, wird ein SyntaxError ausgelöst:

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

Dieser Fehler tritt auf, weil erforderliche Parameter (nicht standardmäßig) in der Funktionssignatur immer vor optionalen Parametern (Standard) stehen müssen. Standardargumente erfüllen Platzhalterwerte, wenn Argumente in Funktionsaufrufen weggelassen werden, während Nicht-Standardargumente obligatorisch sind.

Wenn Argumente in der falschen Reihenfolge platziert werden, wie im obigen Beispiel zu sehen ist, kann der Interpreter die korrekte Zuweisung nicht ermitteln von Werten zu Funktionsparametern. Es ist nicht klar, ob der während eines Funktionsaufrufs übergebene Wert mit dem Standard- oder Nicht-Standardargument übereinstimmen würde.

Um Mehrdeutigkeiten zu vermeiden, kann die folgende korrekte Syntax verwendet werden:

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

Schlüsselwort Argumente können zusammen mit Standardargumenten verwendet werden, um Positionsargumente außerhalb der Reihenfolge bereitzustellen oder fehlende Argumente zu überspringen. Beispielsweise können die Standardargumente „a“ und „b“ mit dem folgenden Funktionsaufruf verwendet werden:

<code class="python">fun1(1, 2, b="False")</code>
Nach dem Login kopieren

In diesem Fall werden die ersten beiden Positionsargumente „x“ und „y“ zugewiesen. Während das Schlüsselwortargument „b“ den Wert „False“ zuweist, wird der Standardwert „True“ übersprungen.

Das obige ist der detaillierte Inhalt vonWarum müssen in Python-Funktionen Standardargumente vor Nicht-Standardargumenten stehen?. 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