alf wrote: > I did not think about any particular problem, just thought it would be > cool to abstract out the base class. In fact you can do that in C++ (to > some extend) using templates and parameterizing the base class.
Python is ways cooler than C++. This is a sensible use case where you may want to change the base class at runtime: >>> class Base(object): ... pass >>> class BasePlusDebugMethods(Base): ... pass ... >>> class C(Base): ... pass >>> C.__bases__ = (BasePlusDebugMethods,) >>> C.mro() [<class '__main__.C'>, <class '__main__.BasePlusDebugMethods'>, <class '__main__.Base'>, <type 'object'>] (i.e. in a running program with a problem you can add debug methods and possibily even fix the problem without restarting the program). Michele Simionato -- http://mail.python.org/mailman/listinfo/python-list