Python Glossary English

Python 3.6+enumфункция

enum.auto()

auto

Автоматически назначает значения элементам перечисления (по умолчанию — последовательные числа).

Синтаксис

from enum import auto
class X(Enum):
    A = auto()

Нумерация начинается с 1, а не с 0 — частая причина расхождения с внешним протоколом, где коды идут с нуля. Если смешивать явные значения и auto(), очередное auto() продолжит счёт от последнего числового значения, а во Flag вместо +1 подставляются степени двойки. Правило простое: auto() уместен, когда сами значения никого не волнуют и важны только имена; как только значение уходит в файл, БД или по сети — задавайте его руками.

Примеры

from enum import Enum, auto
class Dir(Enum):
    NORTH = auto()
    SOUTH = auto()
    EAST = auto()
    WEST = auto()
Dir.NORTH.value # → 1
Dir.SOUTH.value # → 2
list(Dir) # → [<Dir.NORTH:1>, <Dir.SOUTH:2>, ...]

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности