Para determinar la clase, puedo hacerlo:Cómo determinar el tipo de instancia de clase
class A: pass
a = A
type(A) is type #True
o:
import inspect
inspect.isclass(A)
Pero cómo determinar el tipo de instancia de clase, sin saber el ¿nombre de la clase?
Algo como esto:
isinstance(a, a.__class__.__name__)
#TypeError: isinstance() arg 2 must be a type or tuple of types
he encontrado una solución, pero no funciona con Python 3x
import types
class A: pass
a = A()
print(type(a) == types.InstanceType)
#AttributeError: 'module' object has no attribute 'InstanceType'
Solución:
if '__dict__' in dir(a) and type(a) is not type:
¿Está preguntando cómo determinar si un objeto es una clase o una instancia de una clase? – grifaton
InstanceType son clases antiguas, que no existen en 3.x. –
@grifaton, quiero distinguir la clase de la instancia – Opsa