2015-10-26 16 views

Antwort

9

Wie von vaultah (der aus irgendeinem Grund keine Mühe machte, eine Antwort zu posten) aufgezeigt wurde, war dies reported on the issue tracker und wurde seitdem geändert. Die Syntax wird ab Python 3.6 funktionieren.

explizit sein, ja, ich will nachlauf auch nach *args oder **kwds ermöglichen Komma. Und das tut der Patch. - Guido van Rossum

8

Der Grund ist es ursprünglich nicht anerkannt wurde, weil **kwargs der letzte erlaubte Artikel in einer Argumentliste war - nichts, nachdem es kommen könnte; aber eine , sieht aus, als könnte es mehr folgen.

Das hat sich geändert, so dass wir jetzt mit mehreren Stichwort dicts anrufen:

some_func(a, b, **c, **d,) 

Aus Gründen der Einheitlichkeit willen, Hinter Kommas nun in beiden Definitionen und callings von Funktionen unterstützt werden. Dies ist sehr nützlich, wenn entweder mehrere Argumente oder einige lange Argumente vorliegen und die logische Zeile daher auf mehrere physische Zeilen aufgeteilt ist.

Die nachgestellten Kommata sind an beiden Stellen optional.

+0

Danke. Ich bin neugierig auf den '** c, ** d' Teil. Wie würde Python wissen, welche Schlüsselwortargumente in 'c' und welche in' d' eingefügt werden sollen? –

+0

@NiklasR: Sorry, hatte diesen Teil falsch, aktualisierte Antwort. –

Verwandte Themen