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