Строковое перечисление в ООП в Python
Если значением каждого члена должна
быть строка, удобно наследовать
перечисление от StrEnum.
Значения задают текстом, а при
необходимости член ведет себя
как строка.
Сделаем перечисление статусов работника:
from enum import StrEnum
class EmployeeStatus(StrEnum):
ACTIVE = 'active'
ON_LEAVE = 'on_leave'
FIRED = 'fired'
Выведем значение и результат сравнения со строкой:
print(EmployeeStatus.ACTIVE.value) # выведет 'active'
print(EmployeeStatus.ACTIVE == 'active') # выведет True
Строковое перечисление удобно, когда те же тексты уходят в JSON, базу данных или лог.
Сделайте перечисление LocaleCode
на базе StrEnum с кодами языков.
Сравните один член со строкой
с тем же текстом.