Mit reinen Python-Funktionen können Sie Argumente entweder nach ihrer Reihenfolge (z. B. foo(1, 2, 3)
) oder nach ihrem Namen (z. B. foo(a=1, c=3, b=2)
) übergeben.
Funktionen, die in C-Modulen definiert sind, können eine der beiden Konventionen verwenden . Sie können nicht range(stop=10, step=2)
sagen, und so ist es bei den meisten, aber nicht allen Funktionen, die mit der C-Schnittstelle implementiert sind.
Gibt es eine Möglichkeit, die Argumentübergabekonvention einer Funktion in Python zu bestimmen?
Es scheint sich um einen offenen Fehler zu handeln: Es gibt einfach keine Möglichkeit, dies zu sagen. Außerdem ist das Problem implementierungsabhängig: Ihr Code könnte zum Beispiel in PyPy funktionieren, obwohl ich das nicht bestätigen kann.
Die Entwickler auf der Fehler-Seite sind sich nicht sicher, ob sie den Dokumentations-Stil oder die Implementierung ändern sollen, aber ich habe den Eindruck, dass es für beide Seiten kein dringendes Problem ist.