È a mia conoscenza che dal momento che l'unificazione di tipo/classe ogni valore è di un tipo che deriva da object
. Tuttavia non riesco a trovare una conferma assoluta di ciò nei documenti. Mentre è ovvio che isinstance(anything, object)
dovrebbe essere sempre True
, potrei anche immaginare che ci siano casi di legacy edge nella base di Python 2. Qualcuno sa di un esempio in cui isinstance(value, object)
è nonTrue
?Esiste qualche valore in Python per il quale isinstance (valore, oggetto) non è True?
Contesto: come parte di una gerarchia di tipo sto progettando, c'è un all-encompasing Alpha
tipo per cui voglio isinstance(obj, Alpha)
per tornare sempre True
. Sto pensando che su Python 2.6+ ABCMeta.register(object)
dovrebbe fare il trucco, ma voglio essere sicuro.
EDIT: Per i posteri, ABCMeta.register(object)
non funzionerà (provarlo). Ethan Furman fornisce una soluzione alternativa per questo caso nella sua risposta qui sotto.
Tutto è un'istanza di 'oggetto'. C'è un inganno a livello C per rendere anche 'type (object)' un'istanza di oggetto. Non ho un riferimento in questo momento ma c'era un post sul blog negli ultimi sei mesi a riguardo. – agf