[Python-Dev] Concerns about method overriding and subclassing with dataclasses

Antoine Pitrou solipsis at pitrou.net
Fri Dec 29 14:18:43 EST 2017


On Fri, 29 Dec 2017 11:12:11 -0800
Ethan Smith <ethan at ethanhs.me> wrote:
> 
> > Agreed as well.  If I make the effort of having a dataclass inherit
> > from a base class, I probably don't want the base class' methods to be
> > silently overriden by machine-generated methods.  Of course, that can
> > be worked around by using multiple inheritance, you just need to be
> > careful and add a small amount of class definition boilerplate.
> 
> I am not sure exactly what you mean by "worked around by using multiple
> inheritance".

I mean you can write:

class _BaseClass:
    def __repr__(self):
        # ...

@dataclass
class _DataclassMixin:
    # your attribute definitions here

class FinalClass(_BaseClass, _BaseDataclass):
    pass


Yes, it's tedious and verbose :-)

Regards

Antoine.


More information about the Python-Dev mailing list