On Fri, 8 Jul 2022 at 02:22, Steve Jorgensen <stevec...@gmail.com> wrote:
> After some playing around, I figured out a pattern that works without any > changes to the implementations of `dataclass` or `Enum`, and I like this > because it keeps the 2 kinds of concern separate. Maybe I'll try submitting > an MR to add an example like this to the documentation for `Enum`. > > In [1]: from dataclasses import dataclass > > In [2]: from enum import Enum > > In [3]: @dataclass(frozen=True) > ...: class CreatureDataMixin: > ...: size: str > ...: legs: int > ...: > > In [4]: class Creature(CreatureDataMixin, Enum): > ...: BEETLE = ('small', 6) > ...: DOG = ('medium', 4) > ...: > > In [5]: Creature.DOG > Out[5]: Creature(size='medium', legs=4) > I really like this example. I love dataclasses and I love enums and it looks like they go together like peanut butter and chocolate.You get a free initialiser (__init__ method) and all the other goodness of dataclasses (which are really very good). I tweeted your example and it got 29 likes :-) https://twitter.com/voidspace/status/1546832332056924161 Michael > _______________________________________________ > Python-ideas mailing list -- python-ideas@python.org > To unsubscribe send an email to python-ideas-le...@python.org > https://mail.python.org/mailman3/lists/python-ideas.python.org/ > Message archived at > https://mail.python.org/archives/list/python-ideas@python.org/message/G2VALQ4RIVFKIOKVW4XZAHZMLSZWL2XS/ > Code of Conduct: http://python.org/psf/codeofconduct/ > -- Michael Foord Python Consultant, Contractor and Trainer https://agileabstractions.com/
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/DZ73MVKZSWJE7ADUZFZ7NKJUAFPRTKWE/ Code of Conduct: http://python.org/psf/codeofconduct/