What is Enum
in Python?
Enum
(short for Enumeration) is a class in Python’s enum
module that lets you define a set of named constant values. It's commonly used to make your code more readable, maintainable, and type-safe.
Why Use Enum?
- Avoids magic numbers or hardcoded strings
- Provides human-readable names for values
- Useful for state machines, choices, options, etc.
Step 1: Import Enum
Module
from enum import Enum
Step 2: Define an Enum Class
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
Example Usage
favorite_color = Color.RED
if favorite_color == Color.RED:
print("You chose red.")
Output:
You chose red.
Accessing Enum Members
print(Color.GREEN) # Output: Color.GREEN
print(Color.GREEN.name) # Output: GREEN
print(Color.GREEN.value) # Output: 2
Looping Through Enum
for color in Color:
print(color.name, color.value)
Comparing Enums
if Color.RED == Color.RED: # True
print("Same color")
if Color.RED == 1: # False – can't compare Enum directly to int
print("Wrong comparison")
Use .value
to compare:
if Color.RED.value == 1:
print("Correct comparison")
Don’t Do This
Avoid defining enum values with duplicate names or values unless necessary. By default, Python doesn’t allow duplicate names:
class Status(Enum):
ACTIVE = 1
INACTIVE = 1 # Will raise an error
If you need aliases:
class Status(Enum):
ACTIVE = 1
ENABLED = 1 # With `@unique` removed, this becomes an alias
Use @unique
to Enforce Unique Values
from enum import Enum, unique
@unique
class Status(Enum):
ACTIVE = 1
INACTIVE = 2
Advanced: Auto Values
from enum import Enum, auto
class Direction(Enum):
NORTH = auto()
SOUTH = auto()
EAST = auto()
WEST = auto()
Summary Table
Feature | Syntax/Example |
---|---|
Import Enum | from enum import Enum |
Define Enum | class Color(Enum): ... |
Access name/value | Color.RED.name , .value |
Compare Enums | Color.RED == Color.RED |
Loop through members | for color in Color: |
Enforce uniqueness | Use @unique decorator |
Auto-generate values | Use auto() from enum module |
0 Comments:
Post a Comment