Frage

Ich schreibe eine Python-Erweiterung kstat Datenzugriff auf Solaris zur Verfügung zu stellen (in dem gleichen Geist wie die Versand Perl-Bibliothek Sun :: Solaris :: kstat) und ich habe eine Frage zu bedingt eine Liste oder ein einzelnes Objekt zurück. Der Python-Anwendungsfall würde in etwa so aussehen:

    cpu_stats = cKstats.lookup(module='cpu_stat')
    cpu_stat0 = cKstats.lookup('cpu_stat',0,'cpu_stat0')

Wie es momentan laufende implementiert, Lookup () gibt eine Liste aller Objekte, die kstat Spiel. Der erste Fall, in einer Liste von Objekten führen würde (so viele, wie es CPUs ist) und der zweite Anruf spezifiziert eine einzelne kstat vollständig und würde eine Liste, die eine kstat zurück.

Meine Frage ist es schlechte Form ein einzelnes Objekt zurück, wenn es nur ein Spiel ist, und eine Liste, wenn es viele?

Vielen Dank für die nachdenkliche Antwort! Mein Python-Fu ist schwach, aber immer stärker durch Leute wie Sie.

War es hilfreich?

Lösung

„Meine Frage ist es schlechte Form ein einzelnes Objekt zurück, wenn es nur ein Spiel ist, und eine Liste, wenn es viele?“

Es ist eine schlechte Form zu inkonsistenten Typen zurück.

Gibt eine konsistente Art. Liste der kstat

Die meisten Pythonistas nicht mag type(result), um festzustellen, ob es sich um eine kstat oder eine Liste von kstats ist.

Wir würden lieber überprüfen Sie die Länge der Liste auf eine einfache, konsistente Art und Weise.

Auch wenn die Länge auf einem Stück Systeminformationen abhängt, vielleicht eine API-Methode, um diese Metadaten zur Verfügung stellen könnte.

Lesen Sie DB-API PEP für Beratung und Ideen, wie abfrage wie Dinge zu behandeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top