🎯

How to Use Enum in Python

PythonIntermediate

Create enumerated constants with Enum.

Code Example

Python
from enum import Enum, auto

# Basic enum
class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

print(f"Color: {Color.RED}")
print(f"Name: {Color.RED.name}")
print(f"Value: {Color.RED.value}")

# Iterate over enum
print("\nAll colors:")
for color in Color:
    print(f"  {color.name} = {color.value}")

# Access by value
print(f"\nAccess by value: {Color(2)}")

# Auto-incrementing values
class Status(Enum):
    PENDING = auto()
    PROCESSING = auto()
    COMPLETED = auto()
    FAILED = auto()

print("\nStatus values:")
for status in Status:
    print(f"  {status.name} = {status.value}")

# Enum with methods
class Priority(Enum):
    LOW = 1
    MEDIUM = 2
    HIGH = 3
    
    def describe(self):
        return f"Priority {self.name} (level {self.value})"

print(f"\n{Priority.HIGH.describe()}")

# Comparison
print(f"\nPriority.HIGH > Priority.LOW: {Priority.HIGH.value > Priority.LOW.value}")

# Enum as dictionary keys
task_status = {
    Status.PENDING: 5,
    Status.COMPLETED: 10,
    Status.FAILED: 2
}

print(f"\nPending tasks: {task_status[Status.PENDING]}")

# Unique enum
from enum import unique

@unique
class Direction(Enum):
    NORTH = 1
    SOUTH = 2
    EAST = 3
    WEST = 4

print(f"\nDirection: {Direction.NORTH}")

Explanation

Enum creates named constants. Access by name or value. Iterate with for loop. Use auto() for auto-incrementing values. Add methods to enum.

Related Tutorials