Heim  >  Artikel  >  Backend-Entwicklung  >  Warum müssen in Python-Funktionen Standardargumente vor Nicht-Standardargumenten stehen?

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 08:20:29356Durchsuche

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>

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>

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>

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!

Stellungnahme:
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