Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: AndzОтветов: 4
class p1(object): pass
class p2(p1): pass

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

pythonreflectionsuperclass

Ответы

Ответ 1 · рейтинг 40 · Serge

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

Следующее:

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

issubclass(p2, p1)

Ответ 2 · рейтинг 46 · user235859

использование ‹class›.__bases__ похоже на то, что вы ищете...

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

Ответ 3 · рейтинг 6 · Azeem.Butt

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

Ответ 4 · рейтинг 5 · Joril

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы