sintaxis - Comprobando si A es superclase de B en Python
super clase en python (4)
class p1(object): pass
class p2(p1): pass
Entonces p2 es la subclase de p1. ¿Hay una manera de descubrir programáticamente que p1 es [una de] la superclase de p2?
Creo que querías usar "clase" en lugar de "def" .. :) De todos modos, prueba p2.__bases__
Dependiendo de lo que estés tratando de hacer, el método "mro" también puede ser útil.
El uso de <class> .__ bases__ parece ser lo que estás buscando ...
>>> class p1(object): pass
>>> class p2(p1): pass
>>> p2.__bases__
(<class ''__main__.p1''>,)
Sí, hay camino. Puede utilizar una función issubclass .
Como sigue:
class p1(object):pass
class p2(p1):pass
issubclass(p2, p1)