Tengo entendido que, dado que la unificación de tipo/clase cada valor es de un tipo que deriva de object
. Sin embargo, no puedo encontrar la confirmación absoluta de esto en los documentos. Si bien es lógico que isinstance(anything, object)
siempre debe ser True
, también podría imaginar que hay casos de borde heredados en la base de código de Python 2. ¿Alguien sabe de un ejemplo donde isinstance(value, object)
es noTrue
?¿Existe algún valor en Python para el cual isinstance (value, object) no sea True?
Contexto: como parte de una jerarquía de tipos que estoy diseñando, existe un tipo omnipresente Alpha
para el que deseo isinstance(obj, Alpha)
siempre devolver True
. Estoy pensando que en Python 2.6+ ABCMeta.register(object)
debería hacer el truco, pero quiero estar seguro.
EDITAR: Por el bien de la posteridad, ABCMeta.register(object)
no funcionará (pruébelo). Ethan Furman ofrece una solución alternativa para este caso en su respuesta a continuación.
Todo es una instancia de 'object'. Hay un truco en el nivel C para hacer que incluso 'tipo (objeto)' sea una instancia de objeto. No tengo una referencia en este momento, pero hubo una publicación de blog en algún momento en los últimos seis meses sobre esto. – agf