In definition 1 you're using the following hierarchy:
_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin => _Base => InviteeWelcome
While in your second definition you're using the following hierarchy:
_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin => _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, _Base => InviteeWelcome
In this case there is no difference at all (except maybe performance related). _Base
is already inheriting from both _WidgetBase
, _TemplatedMixin
and _WidgetsInTemplateMixin
, so if you inherit from those 3 + _Base
, then _Base
will "override" them all (because it already has al the behavior of the other modules).
But if you would change the order of mixin modules in definition 2so that it becomes:
[ _Base, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin ]
Then everything you override in _Base
, will be overridden again by their defaults in _WidgetBase
, _TemplatedMixin
and _WidgetsInTemplateMixin
.
I think your first approach will work as well and may be less confusing.