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

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

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

27
задан joozek 24 November 2014 в 14:10
поделиться

4 ответа

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

Как показано ниже:

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

issubclass(p2, p1)
38
ответ дан 28 November 2019 в 04:11
поделиться

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

5
ответ дан 28 November 2019 в 04:11
поделиться

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

6
ответ дан 28 November 2019 в 04:11
поделиться

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

>>> class p1(object): pass
>>> class p2(p1): pass
>>> p2.__bases__
(<class '__main__.p1'>,)
43
ответ дан 28 November 2019 в 04:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: