Domanda

Sto scrivendo un'estensione pitone di fornire l'accesso ai dati Solaris kstat (con lo stesso spirito, come la libreria perl spedizione Sun Solaris :: :: kstat) e ho una domanda circa condizionale restituire una lista o un singolo oggetto. Il caso d'uso di pitone sarebbe simile:

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

Come è attualmente implementato, lookup () restituisce un elenco di tutti gli oggetti che kstat partita. Il primo caso si tradurrebbe in un elenco di oggetti (tanti quante sono le CPU) e la seconda chiamata specifica completamente un'unica kstat e restituirebbe una lista contenente uno kstat.

La mia domanda è cattiva forma per restituire un singolo oggetto, quando non v'è solo una partita, e un elenco quando ci sono molti?

La ringrazio per la risposta premuroso! Il mio python-fu è debole ma in crescita più forte a causa di gente come te.

È stato utile?

Soluzione

"La mia domanda è cattiva forma per restituire un singolo oggetto, quando non v'è solo una partita, e un elenco quando ci sono molti?"

E 'cattiva forma per tornare tipi inconsistenti.

restituire un tipo coerente:. Elenco dei kstat

La maggior parte delle Pythonisti non piace usando type(result) per determinare se si tratta di un kstat o un elenco di kstats.

Preferiamo controllare la lunghezza della lista in modo semplice e coerente.

Inoltre, se la lunghezza dipende da un pezzo di informazioni di sistema, forse un metodo API potrebbe fornire metadati.

DB-API PEP per consigli e idee su come di gestire le cose di query-like.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top