Подтвердить что ты не робот

Проверка, является ли A суперклассом B в Python

class p1(object): pass
class p2(p1): pass

Итак, p2 является подклассом p1. Есть ли способ программно определить, что p1 является [одним из] суперкласса [es] из p2?

4b9b3361

Ответ 1

Да, есть способ. Вы можете использовать функцию issubclass.

Как следует:

class p1(object):pass
class p2(p1):pass

issubclass(p2, p1)

Ответ 2

с использованием классов <..__ bas__ похоже на то, что вы ищете...

>>> class p1(object): pass
>>> class p2(p1): pass
>>> p2.__bases__
(<class '__main__.p1'>,)

Ответ 3

В зависимости от того, что вы пытаетесь сделать, метод "mro" также может быть полезен.

Ответ 4

Я думаю, вы хотели использовать "класс" вместо "def"..:) Во всяком случае, попробуйте p2.__bases__