Checking if A is superclass of B in Python

Question:

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

So p2 is the subclass of p1. Is there a way to find out programmatically that p1 is [one of] the superclass[es] of p2 ?

Asked By: Andz

||

Answers:

I think you meant to use “class” instead of “def”.. 🙂 Anyway, try p2.__bases__

Answered By: Joril

Yes, there is way. You can use a issubclass function.

As follows:

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

issubclass(p2, p1)
Answered By: Serge

Depending on what you’re trying to do, the “mro” method can also be useful.

Answered By: Azeem.Butt

using <class>.__bases__ seems to be what you’re looking for…

>>> class p1(object): pass
>>> class p2(p1): pass
>>> p2.__bases__
(<class '__main__.p1'>,)
Answered By: user235859
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.