Skip to content

[Enum] Enhance repr() when inheriting from dataclass #94943

Closed
@ethanfurman

Description

@ethanfurman

In 3.10 and prior, a combined dataclass/enum such as

from dataclasses import dataclass

from enum import Enum

@dataclass(frozen=True)
class CreatureDataMixin:
    size: str
    legs: int

class Creature(CreatureDataMixin, Enum):
    BEETLE = ('small', 6)
    DOG = ('medium', 4)

had a repr() similar to

Creature(size='medium', legs=4)

In 3.11 that has been corrected to:

<Creature.DOG: CreatureDataMixin(size='medium', legs=4)>

Ideally, that would be:

<Creature.DOG: size='medium', legs=4>

Linked PRs

Metadata

Metadata

Assignees

Labels

3.12only security fixesstdlibPython modules in the Lib dirtype-featureA feature request or enhancement

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions