In Swift Enums have something called an Associated Value. Consider the following:
enum Shape {
case circle(radius: Double)
case rectangle(x: Double, y: Double)
}
In this case the Enums' Associated Values are radius and x & y and can be individually set for each instantiation of that Enum. E.g. I could do
smallCircle = Shape.circle(radius: 12)
largeCircle = Shape.circle(radius: 36)
Is there something similar for the Python Enum? I tried around myself but without much success. It seems like whatever attribute I set will always be the same for all instantiations of that Enum - i.e. in above example the second line equivalent in Python would have set the radius to 36 on both smallCircle and largeCircle. Any ideas?
Shapethat's empty and then derived classesCircleandRectanglewith the appropriate attributes (possibly defined with@dataclass). Does that have the semantics you'd be looking for?