The enum.auto function in Python’s enum module is used to automatically assign values to enumeration members. This is particularly useful when you do not care about the specific values of the enumeration members and want to avoid manually assigning them.
Table of Contents
- Introduction
enum.autoFunction Syntax- Examples
- Basic Usage
- Using
enum.autoinIntEnum - Combining
enum.autowith Custom Methods
- Real-World Use Case
- Conclusion
Introduction
The enum.auto function simplifies the process of assigning values to enumeration members. When used, it automatically assigns an integer value starting from 1 and increments by 1 for each subsequent member.
enum.auto Function Syntax
Here is how you use the enum.auto function:
from enum import Enum, auto
class EnumName(Enum):
MEMBER1 = auto()
MEMBER2 = auto()
MEMBER3 = auto()
Parameters:
EnumName: The name of the enumeration.MEMBER: The symbolic name of the enumeration member.
Returns:
- Automatically assigned integer values starting from 1.
Examples
Basic Usage
Define an enumeration with automatic values using enum.auto.
Example
from enum import Enum, auto
class Day(Enum):
SUNDAY = auto()
MONDAY = auto()
TUESDAY = auto()
WEDNESDAY = auto()
THURSDAY = auto()
FRIDAY = auto()
SATURDAY = auto()
print(Day.SUNDAY)
print(Day.SUNDAY.name)
print(Day.SUNDAY.value)
Output:
Day.SUNDAY
SUNDAY
1
Using enum.auto in IntEnum
Combine enum.auto with IntEnum to create enumerations with automatic integer values.
Example
from enum import IntEnum, auto
class Status(IntEnum):
ACTIVE = auto()
INACTIVE = auto()
PENDING = auto()
print(Status.ACTIVE)
print(Status.ACTIVE.name)
print(Status.ACTIVE.value)
Output:
1
ACTIVE
1
Combining enum.auto with Custom Methods
Use enum.auto with custom methods in an enumeration.
Example
from enum import Enum, auto
class Direction(Enum):
NORTH = auto()
SOUTH = auto()
EAST = auto()
WEST = auto()
def is_vertical(self):
return self in (Direction.NORTH, Direction.SOUTH)
print(Direction.NORTH)
print(Direction.NORTH.name)
print(Direction.NORTH.value)
print(Direction.NORTH.is_vertical())
print(Direction.EAST.is_vertical())
Output:
Direction.NORTH
NORTH
1
True
False
Real-World Use Case
Representing HTTP Status Codes
Use enum.auto to represent HTTP status codes without manually assigning values.
Example
from enum import Enum, auto
class HttpStatus(Enum):
OK = auto()
CREATED = auto()
ACCEPTED = auto()
NO_CONTENT = auto()
BAD_REQUEST = auto()
UNAUTHORIZED = auto()
FORBIDDEN = auto()
NOT_FOUND = auto()
INTERNAL_SERVER_ERROR = auto()
print(HttpStatus.OK)
print(HttpStatus.OK.name)
print(HttpStatus.OK.value)
Output:
HttpStatus.OK
OK
1
Conclusion
The enum.auto function is a convenient tool for automatically assigning values to enumeration members in Python. It simplifies the process of defining enumerations, especially when the specific values of the members are not important. This can improve the readability and maintainability of your code, making it easier to work with enumerations in various scenarios.