How to order base classes?

Tim Roberts timr at probo.com
Fri Dec 24 02:39:47 EST 2010


kj <no.email at please.post> wrote:
>
>Suppose that I want to write a subclass C of base classes A and B.
>What considerations should go into choosing the ordering of A and
>B in C's base class list?
>...
>...it is difficult for me to see a strong compelling reason for picking
>an ordering over another.  But may be just ignorance on my part.
>
>How should one go about deciding the ordering of base classes?

In general, it is uncommon to have a class that derives from multiple
classes that all provide major functionality.  That quickly gets confusing,
which is one reason Java doesn't allow multiple inheritance.

Now, it is very common for a class to derive from one class primarily, with
other classes providing a few additional features.  That's the "mix-in"
concept.  In that case, you'd list the "major" ancestor first, with the
mix-ins after, so the mix-ins can modify the behavior.

  class BlueSpanishListBox( ListBox, ColorBlueMixIn, SpanishMixIn ):
     ...

Reading it, a BlueSpanishListBox is-a ListBox that happens to have a few
additional features.
-- 
Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.



More information about the Python-list mailing list