Представим ситуацию: вы любите все структурировать и храните много данных в енамах: Enum, StrEnum, IntEnum и так далее. В какой-то момент обязательно накопится большое количество структур, где символическое имя будет равно значению, как в примере ниже: Как красиво выйти из этой ситуации? Об этом мы и поговорим. В первую очередь, стоит обратить внимание на класс auto из Enum. Он позволяет нам автоматически присваивать значения для каждого символического имени, мы можем просто указать его в виде значений: Класс auto автоматически присваивает значение для символического имени в виде номера по порядку.
Например, для блока кода выше будут присвоены значения HAPPY = 1, SAD = 2: Например, когда мы перебираем Enum-ы через match-case и значения нам не важны. А если важны? Представим ситуацию, когда нам очень нужно, чтобы name было равно value, и чтоб это value присваивалось автоматически. Здесь нам на помощь придет переопределение метода _generate_next_value_. _generate_next_value_(name, start,