Perhaps, this has already been addressed in a newer release (?) but in Python
3.9, making `@dataclass` work with `Enum` is a bit awkward.
Currently, it order to make it work, I have to:
1. Pass `init=False` to `@dataclass` and hand-write the `__init__` method
2. Pass `repr=False` to `@dataclass` and use `Enum`'s representation or write a
custom __repr__
Example:
In [72]: @dataclass(frozen=True, init=False, repr=False)
...: class Creature(Enum):
...: legs: int
...: size: str
...: Beetle = (6, 'small')
...: Dog = (4, 'medium')
...: def __init__(self, legs, size):
...: self.legs = legs
...: self.size = size
...:
In [73]: Creature.Dog
Out[73]: <Creature.Dog: (4, 'medium')>
_______________________________________________
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/EXPSE4KQYM5SWPFCWH4QPOTS6UCP5FNL/
Code of Conduct: http://python.org/psf/codeofconduct/