Heim  >  Artikel  >  Backend-Entwicklung  >  So legen Sie die Standardparameter von Python-Funktionen fest

So legen Sie die Standardparameter von Python-Funktionen fest

WBOY
WBOYnach vorne
2023-05-04 19:01:052577Durchsuche

Wir wissen, dass der Python-Interpreter eine Ausnahme auslöst, wenn beim Aufruf einer Funktion kein Parameter angegeben wird. Um dieses Problem zu lösen, ermöglicht Python das Festlegen von Standardwerten für Parameter, d. h. beim Definieren einer Funktion kann direkt ein Standardwert für die formalen Parameter angegeben werden. Auch wenn in diesem Fall beim Aufruf der Funktion kein Parameter mit einem Standardwert an einen formalen Parameter übergeben wird, kann der Parameter direkt den beim Definieren der Funktion festgelegten Standardwert verwenden.

Python definiert eine Funktion mit Standardwertparametern. Das Syntaxformat lautet wie folgt:

def 函数名(...,形参名,形参名=默认值):
    代码块

Beachten Sie, dass bei Verwendung dieses Formats zum Definieren einer Funktion der formale Parameter mit einem Standardwert am Ende aller Parameter ohne a angegeben werden muss Standardwert, andernfalls tritt ein Syntaxfehler auf.

Das folgende Programm zeigt, wie man eine Funktion mit Standardparametern definiert und aufruft:

#str1没有默认参数,str2有默认参数
def dis_str(str1,str2 = "http://c.biancheng.net/python/"):
print("str1:",str1)
print("str2:",str2)
 
dis_str("http://c.biancheng.net/shell/")
dis_str("http://c.biancheng.net/java/","http://c.biancheng.net/golang/")

Das laufende Ergebnis ist:

str1: http://c.biancheng.net/shell/
str2: http://c .biancheng .net/python/
str1: http://c.biancheng.net/java/
str2: http://c.biancheng.net/golang/

Im obigen Programm die Funktion dis_str() hat 2 Parameter, der zweite hat Standardparameter. Das bedeutet, dass wir beim Aufruf der Funktion dis_str() nur einen Parameter übergeben können, der an den Parameter str1 übergeben wird, und str2 die Standardparameter verwendet, wie in Zeile 6 des Programms gezeigt.

Natürlich können Sie beim Aufruf der Funktion dis_str() auch Werte an alle Parameter übergeben (wie in Zeile 7 des Codes gezeigt). Selbst wenn str2 zu diesem Zeitpunkt einen Standardwert hat, wird dieser Priorität eingeräumt auf den neuen Wert, der ihm übergeben wurde.
Gleichzeitig sind in Kombination mit Schlüsselwortparametern auch die folgenden drei Möglichkeiten zum Aufrufen der Funktion dis_str() möglich:

dis_str(str1 = "http://c.biancheng.net/shell/")
dis_str("http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")
dis_str(str1 = "http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")

Noch einmal: Bei der Definition einer Funktion mit Standardwertparametern müssen die Parameter mit Standardwerten vorhanden sein befindet sich in allen Funktionen ohne Standardwerte hinter den Parametern. Daher ist die im folgenden Beispiel definierte Funktion falsch:

#语法错误
def dis_str(str1="http://c.biancheng.net/python/",str2,str3):
pass

Offensichtlich hat str1 einen Standardwert, während str2 und str3 keine Standardwerte haben, also muss str1 nach str2 und str3 kommen.

Einige Leser fragen sich möglicherweise, dass Sie bei Ihren eigenen benutzerdefinierten Funktionen leicht erkennen können, welche Parameter Standardwerte haben. Wenn Sie jedoch die von Python bereitgestellten integrierten Funktionen oder von anderen Drittanbietern bereitgestellte Funktionen verwenden, woher wissen Sie dann, welche Parameter vorhanden sind? Standardwerte?

In Pyhton können Sie „Funktionsname.__defaults__“ verwenden, um den aktuellen Wert des Standardwertparameters der Funktion anzuzeigen, und sein Rückgabewert ist ein Tupel. Nehmen Sie die Funktion dis_str() in diesem Abschnitt als Beispiel. Führen Sie darauf basierend den folgenden Code aus:

print(dis_str.__defaults__)

Das Ergebnis der Programmausführung ist:

('http://c.biancheng.net/python/', )

Das obige ist der detaillierte Inhalt vonSo legen Sie die Standardparameter von Python-Funktionen fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen