On Fri, 8 Jul 2022 at 02:22, Steve Jorgensen <[email protected]> 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 -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/[email protected]/message/G2VALQ4RIVFKIOKVW4XZAHZMLSZWL2XS/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
--
Michael Foord
Python Consultant, Contractor and Trainer
https://agileabstractions.com/
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/DZ73MVKZSWJE7ADUZFZ7NKJUAFPRTKWE/
Code of Conduct: http://python.org/psf/codeofconduct/