Сообщить об ошибке.

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

Позволяет проверить является ли класс унаследованым.

Синтаксис:

issubclass(class, classinfo)

Параметры:

  • class - класс, требующий проверки,
  • classinfo - класс или кортеж с классами.

Возвращаемое значение:

Описание:

Функция issubclass() возвращает True, если указанный класс class является подклассом указанного класса (классов) classinfo (прямым, косвенным или виртуальным) . Класс считается подклассом самого себя.

Функцией issubclass() можно проверить класс, кортеж с классами, либо рекурсивный кортеж кортежей. Другие типы последовательностей аргументом classinfo не поддерживаются.

Если аргумент classinfo не является классом, либо кортежем с классами, то возбуждается исключение TypeError.

Существует аналогичная функция isinstance() для проверки того же отношения, только для объекта - экземпляра класса. В большинстве случаев isinstance(x, y) == issubclass(type(x), y).

Для проверки, является ли объект экземпляром класса (классов) используйте функцию isinstance(). Так же смотрите встроенную функцию type()

Примеры проверки наследования от указанного класса.

class A: 
    pass

class B(A): 
    pass

>>> issubclass (B, A)
# True
>>> issubclass (A, B)
# False

class C: 
    pass

# использование кортежа с классами для проверки
>>> isinstance (B(), (A, C))
# True

Не путайте!

>>> isinstance (B, A)
# False

Класс B унаследован от A, но он не является его сущностью. Классы сами по себе объекты и функция isinstance() к ним вполне применима. Класс B является сущностью класса type, который в свою очередь, унаследован от object, поэтому:

>>> isinstance(B, object)
# True