La funzione getmembers() recupera i membri di un oggetto come fossero appartenenti ad una classe o ad un modulo. Le undici funzioni il cui nome inizia con ``is'' vengono fornite principalmente come scelta conveniente per il secondo argomento di getmembers(). Aiutano anche a determinare quando ci si può aspettare di trovare i seguenti attributi speciali:
Tipo | Attributo | Descrizione | Note |
---|---|---|---|
modulo | __doc__ | stringa di documentazione | |
__file__ | nomefile (mancante per i moduli built-in) | ||
class | __doc__ | stringa di documentazione | |
__module__ | nome del modulo in cui questa classe viene definita | ||
metodo | __doc__ | stringa di documentazione | |
__name__ | nome con il quale questo metodo è definito | ||
im_class | oggetto classe richiesto per questo metodo | (1) | |
im_func | oggetto funzione contenente l'implementazione del metodo | ||
im_self | istanza a cui questo metodo è legata, o None |
||
funzione | __doc__ | stringa di documentazione | |
__name__ | nome con il quale questa funzione viene definita | ||
func_code | codice oggetto contenente il bytecode delle funzioni compilate | ||
func_defaults | tupla di ogni valore predefinito per gli argomenti | ||
func_doc | (stessa cosa di __doc__) | ||
func_globals | spazio dei nomi globali in cui viene definita questa funzione | ||
func_name | (stessa cosa di __name__) | ||
traceback | tb_frame | oggetto frame a questo livello | |
tb_lasti | indice dell'ultima istruzione tentata, in bytecode | ||
tb_lineno | numero di linea corrente nel codice sorgente Python | ||
tb_next | prossimo oggetto con traceback più interno (chiamato da questo livello) | ||
frame | f_back | prossimo oggetto frame più esterno (questo è il frame chiamante) | |
f_builtins | spazio dei nomi built-in visto da questo frame | ||
f_code | codice oggetto eseguito in questo frame | ||
f_exc_traceback | traceback, se sollevato in questo frame, altrimenti None |
||
f_exc_type | tipo di eccezione, se sollevata in questo frame, altrimenti None |
||
f_exc_value | valore dell'eccezione, se sollevata in questo frame, altrimenti None |
||
f_globals | spazio dei nomi globale visto da questo frame | ||
f_lasti | indice dell'ultima istruzione tentata, in bytecode | ||
f_lineno | numero della linea corrente nel codice sorgente Python | ||
f_locals | spazio dei nomi locali visto da questo frame | ||
f_restricted | 0 o 1 se il frame è in esecuzione in modalità ristretta | ||
f_trace | funzione tracciante per questo frame, altrimenti
None |
||
code | co_argcount | numero degli argomenti (non inclusi gli argomenti * o ** ) | |
co_code | stringa o bytecode compilato grezzo | ||
co_consts | tupla delle costanti usate nel bytecode | ||
co_filename | nome del file in cui questo codice oggetto è stato creato | ||
co_firstlineno | numero della prima riga in codice sorgente Python | ||
co_flags | bitmap: 1=ottimizzato | 2=newlocals | 4=*arg | 8=**arg |
||
co_lnotab | mapping codificato dei numeri di riga negli indici del bytecode | ||
co_name | nome cui cui questo codice oggetto viene definito | ||
co_names | tupla dei nomi delle variabili locali | ||
co_nlocals | numero delle variabili locali | ||
co_stacksize | spazio dello stack richiesto nella virtual machine | ||
co_varnames | tupla dei nomi degli argomenti e delle variabili locali | ||
builtin | __doc__ | stringa di documentazione | |
__name__ | nome originale di questa funzione o metodo | ||
__self__ | istanza a cui questo metodo è legata, altrimenti None |
Nota:
object[, predicato]) |
percorso) |
None
se non può venire identificato come modulo. La tupla
restituita è
(nome, suffisso, modo, mtype)
, dove
nome è il nome del modulo senza il nome dei package che lo
contengono, suffisso è la parte finale del nome del file (che
potrebbe non essere una estensione con punto), modo è
la modalità open() che potrebbe venire usata
('r'
o 'rb'
), e mtype è un intero che indica il
tipo di modulo. mtype avrà un valore che può venire
confrontato con le costanti definite nel modulo imp;
verificate la documentazione di quel modulo per avere maggiori
informazioni sui tipi del modulo stesso.
percorso) |
None
.
oggetto) |
oggetto) |
oggetto) |
oggetto) |
oggetto) |
oggetto) |
oggetto) |
oggetto) |
oggetto) |
oggetto) |
Questo metodo esiste dalla versione 2.2 di Python e, per esempio, restituisce vero con int.__add__. Un oggetto che supera questo test ha l'attributo __get__ ma non __set__; ma al di là di questo, è l'insieme degli attributi che varia. __name__ è di solito rilevante e __doc__ lo è spesso.
Metodi, implementati mediante descrittori, che superano altresì uno degli altri test, restituiscono falso con il test ismethoddescriptor(), semplicemente perché gli altri test offrono più garanzie - potete, ad esempio, contare sul fatto di avere l'attributo im_func (etc) quando un oggetto supera ismethod().
oggetto) |
I descrittori di dati hanno sia un attributo __get__ che un attributo __set__. Esempi di descrittori di dati sono le proprietà (definite in Python), i getset ed i membri (definiti in C). Tipicamente, i descrittori di dati avranno anche gli attributi __name__ e __doc__ (le proprietà, i getset ed i membri hanno entrambi questi attributi), ma questo non viene garantito. Nuovo nella versione 2.3.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.