
On 8 Jul 2022, at 02:22, Steve Jorgensen <stevecjor@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)
Can't you define the type of size as an enum? Using multiple inheritance seems like the wrong way to go. What if you are 10 fields in the dataclass that are all enums? That could get messy. Disclaimer I have not used dataclass. Just thinking from OOD point of view. Barry
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@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/G2VALQ... Code of Conduct: http://python.org/psf/codeofconduct/