class p1(object): pass class p2(p1): pass
Таким образом, p2 является подклассом p1. Есть ли способ программно узнать, что p1 является [одним из] суперклассом [es] для p2?
с использованием .__ Base__, похоже, то, что вы ищете ...
>>> class p1(object): pass >>> class p2(p1): pass >>> p2.__bases__ (<class '__main__.p1'>,)
Да, есть способ. Вы можете использовать функцию issubclass .
следующим образом:
class p1(object):pass class p2(p1):pass issubclass(p2, p1)
В зависимости от того, что вы пытаетесь сделать, метод "mro" также может быть полезен.
Я думаю, что вы хотели использовать "класс" вместо "def" .. :) В любом случае, попробуйте p2.__bases__
p2.__bases__