Visualize class inheritance hierarchy

Aaron "Castironpi" Brady castironpi at gmail.com
Wed Sep 24 02:08:20 CEST 2008


On Sep 23, 5:53 pm, Rob Kirkpatrick <robert.d.kirkpatr... at gmail.com>
wrote:
> Hi All,
>
> I just finished debugging some code where I needed to determine why
> one subclass had a bound method and another did not.  They had
> different pedigree's but I didn't know immediately what the
> differences were.
>
> I ended up walking the hierarchy, going back one class at a time
> through the code, for the two subclasses (hierarchy ~7 classes deep
> each) to see whom they inherited from.  Short of writing this down on
> paper, is there any way to graphically display the pedigree of an
> object/class?  "Graphically" can be text output to the terminal, don't
> need anything special...
>
> I'm assuming this has been discussed before, but I'm lacking any
> Google keywords that bring up the appropriate discussion.
>
> Cheers,
> Rob

Compare their __mro__ members if they are new-style.  The depth-first
search for the member you're looking for is straightforward in Python,
even if maybe not immediately obvious.

If not, we can try a settrace and a search for when they are defined,
and build an __mro__ manually.



More information about the Python-list mailing list