enum — Support for enumerations

An enumeration is a set of symbolic names (members) bound to unique, constant values.

from enum import Enum, auto

Basic Enum

from enum import Enum

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

print(Color.RED)          # Color.RED
print(Color.RED.name)     # 'RED'
print(Color.RED.value)    # 1

# Access by value or name
print(Color(1))           # Color.RED
print(Color['GREEN'])     # Color.GREEN

Auto values

from enum import Enum, auto

class Day(Enum):
    MONDAY = auto()    # 1
    TUESDAY = auto()   # 2
    WEDNESDAY = auto() # 3

Iteration and Comparison

for c in Color:
    print(c)

# Comparison uses 'is' for enums
if my_color is Color.RED:
    print("It's red!")

Official Documentation

enum — Support for enumerations

API Reference

Base Classes

Class Description
enum.Enum Base class for creating enumerated constants.
enum.IntEnum Base class for creating enumerated constants that are also subclasses of int.
enum.Flag Base class for creating enumerated constants that can be combined using the bitwise operators.

Utilities

Function/Class Description
enum.auto() Instances are replaced with an appropriate value for Enum members.
enum.unique Enum class decorator that ensures only one name is bound to any one value.