- class Red(object): pass
- class DarkRed(Red): pass
- dr = DarkRed()
- # проверить принадлежность экземпляра к классу
- print isinstance(dr, DarkRed) # True
- print isinstance(dr, Red) # True
Также можно проверить является ли класс A базовым классом классу B.
- class Red(object): pass
- class DarkRed(Red): pass
- print issubclass(DarkRed, Red)
- # True (Red является базовым классом классу DarkRed)
- print issubclass(Red, DarkRed)
- # False (DarkRed неявляется базовым классом классу Red)
Добавлю что методы определения принадлежности можно переопределить.
- __instancecheck__(self, cls)
- __subclasscheck__(self, subcls)
- Python классы
* Python для новичков