[PYTHON] Optionale Argumente und * args, ** kwargs

Es ist in Ordnung, * args, ** kwargs nach dem optionalen Argument zu setzen

Es ist möglich, ein beliebiges Argument vor * args zu setzen. Der folgende Code wird übergeben.

optionalarg.py


def foo(x=10, *args, **kwargs):
    return x, args, kwargs


print foo(12, 13, 14) 
#=> (12, (13, 14), {})

Es ist jedoch nicht möglich, ein erforderliches Argument nach einem optionalen Argument zu definieren. Der folgende Code führt zu einem Syntaxfehler.

syntaxerror.py


def foo(x=10, y, *args, **kwargs):
    return x, y, args, kwargs
# SyntaxError: non-default argument follows default argument

Über die Begriffe "willkürliches Argument" und "benanntes Argument"

Es gibt die Begriffe optionales Argument und benanntes Argument, aber wie sollen wir sie richtig verwenden?

Wenn Sie "Dive In Python" lesen, können Sie Folgendes erraten.

  1. "Optionales Argument" beim Definieren einer Funktion. Ein Paar "wesentlicher Argumente".
  2. "Benannte Argumente", um einen Namen für den Funktionsaufruf anzugeben.

(Link: Übersetzte Version von cocoatomo, da das Lesen der englischen Version schwierig ist) http://cocoatomo.iza-yoi.net/DIP/power_of_introspection/optional_arguments.html

Recommended Posts

Optionale Argumente und * args, ** kwargs
Anmerkungen zu * args und ** kargs
python * args, ** kwargs Verwendungshinweise
❻: Bezieht sich auf den Fall, dass die gesuchte Nummer nicht gefunden wird. Es ist üblich, mit "0" oder "1" ab und zu zu urteilen, aber da "0" im Element des Entladungsarrays verwendet wird, wird es auf leicht verständliche Weise mit "-1" ausgedrückt. ❼: Schließlich werden die gesuchten Ergebnisse ausgegeben. 4. Ist es in Ordnung, in dem Teil, den ich hier gelernt habe, nicht ".round" hinzuzufügen (wird verwendet, wenn ein Fehler auftritt)? Es scheint, dass es automatisch abgerundet wird, wenn ich es nachschlage. Beim Runden auf die angegebene Stelle ist es zweckmäßig, mit ".round (2) <zu codieren. <Da bis zur 2. Stelle des Bruchs angezeigt wird, wird es auf die 3. Stelle des Bruchs gerundet>" usw.! Ruby, Rails, If, while, Binary Search Verschiedene Argumente von Funktionen in Python (Positionsargumente, optionale Argumente, Argumente variabler Länge, Schlüsselwortargumente) def func (arg, * args, ** kwargs)
python3x: Was bedeuten * args und ** kwargs als Parameter?
Reihenfolge der Argumente für RegularGridInterpolator und interp2d
Gemischte Positionsargumente, Tippen und Wörterbuch
[Python] Funktionsargumente * (Stern) und ** (Doppelstern)