Könnten Sie eine Python-Funktion implementieren, die Ganzzahlen im Kwargs-Mapping empfangen kann?
Nein, das kannst du nicht. Die Python-Evaluierungsschleife behandelt Aufruffunktionen, die in Python-Code definiert sind, anders als den Aufruf eines in C-Code definierten Callable Objects. Der Python-Auswertungsschleifencode, der die Erweiterung von Schlüsselwortargumenten behandelt, hat die Tür für nicht-string-Schlüsselwortargumente fest geschlossen.
Aber SimpleNamespace
ist kein Python-definiertes Callable, es ist vollständig in definiert C-Code . Es akzeptiert Schlüsselwortargumente direkt und ohne Validierung. Deshalb können Sie ein Wörterbuch mit Schlüsselwörtern übergeben, die keine Zeichenfolgen sind.
Das ist vielleicht ein Fehler; Sie sollten die C-API-Argumentparsing-Funktionen verwenden, die alle gegen nicht- String-Schlüsselwortargumente Aber SimpleNamespace
wurde nur für das Objekt entwickelt, das sys.implementation
data * und war nicht wirklich für andere Zwecke konzipiert.
Es könnte andere Ausnahmen geben, aber sie sind alle C-definierte Callables, nicht Python-Funktionen.
* Die Methode time.get_clock_info()
wird ebenfalls ausgeführt eine Instanz der SimpleNamespace
-Klasse; Es ist der einzige andere Ort, an dem der Typ derzeit verwendet wird.
Tags und Links python keyword-argument