Warum müssen in Python-Funktionsdefinitionen erforderliche Argumente vor Standardargumenten stehen?

Susan Sarandon
Freigeben: 2024-10-31 22:24:02
Original
519 Leute haben es durchsucht

Why must required arguments precede default arguments in Python function definitions?

Warum können Standardargumente nicht vor erforderlichen Argumenten stehen?

In Python wird ein SyntaxError ausgelöst, wenn Nicht-Standardargumente auf Standardargumente folgen die Parameterliste einer Funktion. Diese Einschränkung besteht, um die eindeutige Interpretation von Argumentwerten durch den Interpreter sicherzustellen.

Beachten Sie die folgende Funktionsdefinition:

def fun1(a="who is you", b="True", x, y):
    print a, b, x, y
Nach dem Login kopieren

Dieser Code löst einen SyntaxError aus, da die erforderlichen Parameter x und y folgen die Standardparameter a und b.

Erforderliche Argumente haben Vorrang

Erforderliche Parameter müssen immer vor allen Standardparametern in der Parameterliste einer Funktion platziert werden. Dies liegt daran, dass erforderliche Parameter obligatorisch sind, während Standardparameter optional sind. Syntaktisch wäre der Interpreter nicht in der Lage zu bestimmen, welche Werte zu welchen Argumenten passen, wenn sie gemischt würden.

Beispiel

Der folgende Code läuft fehlerfrei, da die erforderlichen Parameter x und y werden vor den Standardparametern a und b platziert:

def fun1(x, y, a="who is you", b="True"):
    print a, b, x, y
Nach dem Login kopieren
Nach dem Login kopieren

Schlüsselwortargumente

Schlüsselwortargumente können verwendet werden, um eine Funktion mit Argumenten in beliebiger Reihenfolge aufzurufen. Die Reihenfolge der Parameter in der Parameterliste der Funktion bestimmt jedoch immer noch, welche Werte welchen Argumenten zugewiesen werden.

Zum Beispiel mit der obigen Funktionsdefinition:

def fun1(x, y, a="who is you", b="True"):
    print a, b, x, y
Nach dem Login kopieren
Nach dem Login kopieren

Der folgende Code lautet gültig:

fun1("ok a", "ok b", 1)  # 1 is assigned to x, "ok a" to a, "ok b" to b, "True" to y
Nach dem Login kopieren

Wenn die Parameter jedoch nicht mit Standardwerten deklariert würden:

def fun1(x, y, a, b):
    print a, b, x, y
Nach dem Login kopieren

Der folgende Code würde einen TypeError auslösen:

fun1("ok a", "ok b", 1)  # 3 arguments instead of 4
Nach dem Login kopieren

Daher Standardargumente sind nützlich, um optionale Argumente zuzulassen oder fehlende Argumente zu überspringen, wenn Schlüsselwortargumente verwendet werden.

Das obige ist der detaillierte Inhalt vonWarum müssen in Python-Funktionsdefinitionen erforderliche Argumente vor 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!