f(a, b, option1=10, option2=20)
Über die grundlegende Sache, dass Sie das Argument mit einem Schlüsselwort wie angeben möchten. Die Option wird nicht jedes Mal angegeben. Wenn sie nicht angegeben wird, wird der Standardwert verwendet.
f(a, b) # option1,Option2 muss nicht angegeben werden
**kwargs
Wenn ich suche, finde ich oft etwas namens "** kwargs".
def f(a, b, **kwargs):
option1 = kwargs.get('option1', 1)
option2 = kwargs.get('option2', 2)
kwargs
ist ein Wörterbuch, das Schlüsselwortnamen und -werte enthält, und der Standardwert wird durch die Methode get
angegeben.
"** kwargs" ist jedoch "alles". Wenn Sie es also versehentlich falsch schreiben, wird ein unbeabsichtigter Standardwert verwendet.
f(a, b, opton1=10) #Option1 ist aufgrund von Rechtschreibfehlern standardmäßig 1
Erstens ruft Python Argumente nach Namen auf, daher sollten Sie "** kwargs" nicht verwenden, wenn Sie die Schlüsselwörter kennen.
def f(a, b, option1=1, option2=2):
pass
f(a, b, option1=10, option2=20)
f(a, b, opton1=10) #Es gibt kein Schlüsselwort für den Fehler opton1
Option1
ist jedoch auch ein festes Argument. Wenn Sie also versehentlich einen Fehler bei der Anzahl der Argumente machen, überschreiben Sie die Option.
f(a, b, c) #Falsche Anzahl von Argumenten, unbeabsichtigte Option1=c
*
Argument (Python3)In Python3 können nachfolgende Variablen durch Einfügen von "*" nur über Schlüsselwörter aufgerufen werden.
def f(a, b, *, option1=1, option2=2):
pass
f(a, b, option1=10, option2=20)
f(a, b, c) #Zwei fehlerfeste Variablen
f(a, b, opton1=10) #Schlüsselwort, das nicht existiert
Deshalb empfiehlt Python3 dies.
http://stackoverflow.com/questions/1419046/python-normal-arguments-vs-keyword-arguments
Recommended Posts