Sorry I saw this so late, but
class MixedClass2(SomeMixin, MyClass):
pass
>>> m = MixedClass2()
mixin before
base
mixin after
The pattern @Ignacio is talking about is called cooperative multiple inheritance, and it’s great. But if a base class isn’t interested in cooperating, make it the second base, and your mixin the first. The mixin’s __init__() (and anything else it defines) will be checked before the base class, following Python’s MRO.
This should solve the general question, though I’m not sure it handles your specific use. Base classes with custom metaclasses (like Django models) or with strange decorators (like @martineau’s answer 😉 can do crazy things.