Страницы

Поиск по вопросам

суббота, 1 февраля 2020 г.

Как проверить наследование классов в Python?

#python #ооп #классы


У меня есть класс А и класс B, наследующий класс A. Кто подскажет функцию, выдающую
True или False на наследование классом B класса A?
    


Ответы

Ответ 1



Встроенные функции issubclass и isinstance отвечают на вопрос о наследовании: issubclass (class, classinfo) - является ли класс унаследованым (дочерним) от другого(их) класса(ов) isinstance (object, classinfo) - является ли объект сущностью класса(ов) class A: pass class B(A): pass issubclass (B, A) # True issubclass (A, B) # False isinstance (B(), A) # True Но, не путайте: isinstance (B, A) # False Класс B унаследован от A, но он не является его сущностью. Классы сами по себе объекты и функция isinstance к ним вполне применима. Класс B является сущностью класса type, который в свою очередь, унаследован от object, поэтому: isinstance (B, object) # True

Ответ 2



issublclass(B, A) Это точно функция, которую вы хотите. См. документацию для этой функции.

Комментариев нет:

Отправить комментарий