El tipo de juicio es instancia (objeto, clase)
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
class Student(Person):
def __init__(self, name, gender, score):
super(Student, self).__init__(name, gender)
self.score = score
class Teacher(Person):
def __init__(self, name, gender, course):
super(Teacher, self).__init__(name, gender)
self.course = course
p = Person('Tim', 'Male')
s = Student('Bob', 'Male', 88)
t = Teacher('Alice', 'Female', 'English')
print(isinstance(t, Person))
print(isinstance(t, Student))
print(isinstance(t, Teacher))
print(isinstance(t, object))
En la cadena de herencia, una instancia de una clase principal no puede ser un tipo de subclase, porque la subclase tiene más propiedades y métodos que la clase principal.
Una instancia puede verse como su propio tipo o como el tipo de su clase padre.