GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • [ date ]
  • [ thread ]
  • [ subject ]
  • [ author ]

This view

  • Original page
  • New address

GeezerVison is showing mail.python.org — [Python-Dev] Concerns about method overriding and subclassing with dataclasses

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

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

  • Previous message (by thread): [Python-Dev] Concerns about method overriding and subclassing with dataclasses
  • Next message (by thread): [Python-Dev] Concerns about method overriding and subclassing with dataclasses
  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

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.

  • Previous message (by thread): [Python-Dev] Concerns about method overriding and subclassing with dataclasses
  • Next message (by thread): [Python-Dev] Concerns about method overriding and subclassing with dataclasses
  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

More information about the Python-Dev mailing list
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.