Чтобы определить класс, я могу сделать это:
class A: pass
a = A
type(A) is type #True
или
import inspect
inspect.isclass(A)
Но как определить тип экземпляра класса, не зная имя класса?
Что-то вроде этого:
isinstance(a, a.__class__.__name__)
#TypeError: isinstance() arg 2 must be a type or tuple of types
Я нашел одно решение, но оно не работает с Python 3x
import types
class A: pass
a = A()
print(type(a) == types.InstanceType)
#AttributeError: 'module' object has no attribute 'InstanceType'
Решение:
if '__dict__' in dir(a) and type(a) is not type: