Сообщить об ошибке.

Краткий обзор раздела: Модуль enum перечисления в Python

Содержание с кратким описанием:

ОБЗОР: Модуль enum перечисления в Python.
Перечисления Enum похожи на глобальные переменные, но предлагают более полезную функцию repr(), группировку, безопасность типов и некоторые другие функции. Они наиболее полезны, когда есть переменная, которая может принимать одно из ограниченного набора значений, например, дни недели.
Создание перечислений enum.Enum в Python.
Перечисления создаются с использованием синтаксиса класса, что упрощает их чтение и запись. Значения членов перечисления могут быть любыми: int, str и т. д.
Функциональный синтаксис определения перечислений в Python.
Семантика функционального синтаксиса создания перечисления напоминает collections.namedtuple. Первый аргумент вызова Enum - это имя перечисления. Второй аргумент - это источник имен членов перечисления.
Доступ к членам и их атрибутам перечисления модуля enum в Python.
Бывает полезно получить доступ к элементам в перечислениях программно. Например, в ситуациях, когда вызов Color.RED не работает, потому что точный цвет неизвестен во время написания программы.
Дублирование членов и значений перечисления модуля enum в Python.
Попытка создать член с тем же именем, что и уже определенный атрибут (другой член, метод и т. д.), или попытка создать атрибут с тем же именем, что и член, недопустимы.
Декоратор @enum.unique модуля enum в Python.
Декоратор классов @enum.unique разработан специально для перечислений модуля enum. Он ищет магический метод перечисления __members__, собирая все найденные псевдонимы и если они обнаружены, то поднимает исключение ValueError с выводом подробностей
Использование класса auto модуля enum в Python.
Если точное значение в перечислении неважно, то можно использовать класс enum.auto модуля enumИспользование автоматических значений
Производные класса enum.Enum в Python.
Целочисленные перечисления enum.IntEnum. Класс enum.IntFlag. Класс enum.Flag. Пользовательские производные на основе класса enum.Enum
Итерация и сравнение перечислений модуля enum в Python.
Итерация по членам перечисления не дает псевдонимов. Члены перечисления сравниваются по идентичности.
Допустимые члены и атрибуты enum в Python.
Имена, которые начинаются и заканчиваются одним подчеркиванием, зарезервированы модулем enum и не могут использоваться. Все другие атрибуты, определенные в перечислении, станут членами этого перечисления, за исключением специальных методов, дескрипторов и имен переменных, перечисленных в _ignore_
Наследование перечислений от классов данных в Python.
В Python 3.12 добавлена ​​поддержка классов данных. При наследовании от класса данных dataclass в __repr__() опускает имя унаследованного класса.
Отличие enum от классов Python.
У перечислений модуля enum есть собственный метакласс, который влияет на многие аспекты как производных классов Enum, так и их экземпляров (членов).
Примеры использования модуля enum в Python.
рецепты для различных типов перечислений, которые можно использовать напрямую или в качестве примеров для создания собственных.
Использование перечислений Python совместно с БД PostgreSQL.
Часто встает задача: хранить информацию о перечислениях Python в поле базы данных для каждой строки. Чтобы уменьшить количество ошибок при обмене данными, между Python и БД, в PostgreSQL так же можно определить поле таблицы, как такое же перечисление, при помощи функции ENUM().
Тонкости реализации модуля enum в Python.
В материале рассмотрены тонкости реализации модуля enum в Python.
Класс EnumCheck модуля enum в Python.
Класс enum.EnumCheck - это перечисление со значениями CONTINUOUS, NAMED_FLAGS и UNIQUE для использования с декоратором @enum.verify(), чтобы гарантировать, что данное перечисление соответствует различным ограничениям. (Добавлен в Python 3.11)
Класс FlagBoundary() модуля enum в Python.
Класс enum.FlagBoundary позволяет более детально контролировать, как обрабатываются недопустимые значения в enum.Flag и его подклассах. (Добавлен в Python 3.11)