Ermitteln der Argumentübergabekonvention einer C-Bibliotheksfunktion

8

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?

    
9000 01.07.2011, 17:50
quelle

1 Antwort

4

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.

    
RoundTower 01.07.2011, 18:14
quelle

Tags und Links