One advantage of enums in Java and other languages is that I do not have to care about specific values (in contrast to constants/static final members). For example, in Java I can do the following:
public enum Color {
RED, BLUE;
}
At least to my knowledge, in python I have to do the following:
class Color(Enum) {
RED = "red" # or e.g 1
BLUE = "blue" # or e.g. 2
}
If I have an enum with hundreds of names, then this can get quite cumbersome, because I always have to keep track whether a value was already assigned to a name or not. Is it maybe possible to achieve the same result as in Java without resorting to generators or the like?
If you're using Python 3.6 or later, you can use enum.auto()
:
from enum import Enum, auto
class Color(Enum):
RED = auto()
BLUE = auto()
The documentation for the enum
library describes this and other useful features like the @unique
decorator.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With