Python logo

Table of Contents

  • Enum HOWTO
    • Programmatic access to enumeration members and their attributes
    • Duplicating enum members and values
    • Ensuring unique enumeration values
    • Using automatic values
    • Iteration
    • Comparisons
    • Allowed members and attributes of enumerations
    • Restricted Enum subclassing
    • Dataclass support
    • Pickling
    • Functional API
    • Derived Enumerations
      • IntEnum
      • StrEnum
      • IntFlag
      • Flag
      • Others
    • When to use __new__() vs. __init__()
      • Finer Points
        • Supported __dunder__ names
        • Supported _sunder_ names
        • _Private__names
        • Enum member type
        • Creating members that are mixed with other data types
        • Boolean value of Enum classes and members
        • Enum classes with methods
        • Combining members of Flag
        • Flag and IntFlag minutia
    • How are Enums and Flags different?
      • Enum Classes
      • Flag Classes
      • Enum Members (aka instances)
      • Flag Members
    • Enum Cookbook
      • Omitting values
        • Using auto
        • Using object
        • Using a descriptive string
        • Using a custom __new__()
      • OrderedEnum
      • DuplicateFreeEnum
      • MultiValueEnum
      • Planet
      • TimePeriod
    • Subclassing EnumType

Previous topic

Debugging C API extensions and CPython Internals with GDB

Next topic

Functional Programming HOWTO