Over(joy)riding

Bruno Desthuilliers bdesth.quelquechose at free.quelquepart.fr
Wed Feb 17 15:00:42 EST 2010


mk a écrit :
> Bruno Desthuilliers wrote:
>> mk a écrit :
>>> P.S. Method resolution order in Python makes me want to kill small
>>> kittens.
>>
>> mro is only a "problem" when using MI.
> 
> Oh sure! And I have the impression that multiple inheritance is not used
> all that often. What (some) Python code I've read in open source
> projects typically uses single inheritance.

Single inheritance does indeed cover most of the needs - and FWIW, even
single inheritance is not used as much in Python as in some other more
mainstream OOPLs. This comes partly from duck typing - inheritance is
only used for implementation inheritance, not for type-based polymorphic
dispatch -, and partly from Python's support for composition/delegation
(thru __getattr__). Also - as you noticed - single inheritance is easier
to grasp, and Python's philosophy really values simplicity, readability,
maintainability, and coder's mental health !-)

> Nevertheless MI is there in Python, might be useful in some cases and
> Guido put it there for some reason,

Indeed. As with most Python's "advanced" features, it's there so you can
use it when appropriate.

> so Citizens Aspiring To Become
> Pythonistas like me work to learn it.

FWIW, I very rarely had to use it myself in almost 10 years of Python
programming - main exceptions being Zope2 stuff (which is IMHO highly
unpythonic) and a couple mixin classes here and there.



More information about the Python-list mailing list