subclases sintaxis polimorfismo multiherencia hijas herencia ejercicio clases clase python reflection superclass

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)