# Using type() and _mro_ (Method Resolution Order)
class Animal: pass
class Dog(Animal): pass
my_dog = Dog()
print(type(my_dog)) # <class '_main_.Dog'>
print(type(my_dog)._mro_) # Shows inheritance chain
print(isinstance(my_dog, Animal)) # True
# Using inspect module
import inspect
print(inspect.getmro(Dog)) # More readable hierarchy