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/

Reply via email to