Как можно проверить что объект класса является потомком ?

Спросят с вероятностью 3%



Для проверки того, что объект класса является потомком определенного класса в Python, используются встроенные функции isinstance() и issubclass(). Эти функции помогают определить, является ли объект экземпляром указанного класса или подкласса.



Функция isinstance() проверяет, является ли объект экземпляром указанного класса или подкласса этого класса.

class Animal:

pass



class Dog(Animal):

pass



dog = Dog()



# Проверка, является ли dog экземпляром класса Dog

print(isinstance(dog, Dog)) # True



# Проверка, является ли dog экземпляром класса Animal или его подклассов

print(isinstance(dog, Animal)) # True




Функция issubclass() проверяет, является ли один класс подклассом другого класса.

class Animal:

pass



class Dog(Animal):

pass



# Проверка, является ли Dog подклассом Animal

print(issubclass(Dog, Animal)) # True



# Проверка, является ли Animal подклассом Dog

print(issubclass(Animal, Dog)) # False




Рассмотрим пример использования обеих функций в контексте проверки наследования и типизации:

class Vehicle:

def drive(self):

print("Driving")



class Car(Vehicle):

def honk(self):

print("Honking")



class Bicycle(Vehicle):

def pedal(self):

print("Pedaling")



car = Car()

bicycle = Bicycle()



# Проверка через isinstance

print(isinstance(car, Car)) # True

print(isinstance(car, Vehicle)) # True

print(isinstance(bicycle, Car)) # False



# Проверка через issubclass

print(issubclass(Car, Vehicle)) # True

print(issubclass(Bicycle, Vehicle)) # True

print(issubclass(Vehicle, Car)) # False




Для проверки, что объект является потомком определенного класса, используйте:

isinstance(obj, Class): проверяет, является ли объект obj экземпляром класса Class или его подклассов.

issubclass(SubClass, Class): проверяет, является ли SubClass подклассом класса Class.



👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент



🔐 База собесов | 🔐 База тестовых