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>
> 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.
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