Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Статья является приложением к уроку
Использование библиотеки enum в программах на языке Python
Как я уже говорил на видеоуроке, перечисление очень похоже на словарь. Но при этом нельзя менять значения элементов перечисления и содержимое перечисления. Следовательно использовать перечисление следует в том случае, если вы хотите использовать в программе фиксированные наборы данных. Это могут быть цвета, месяцы, марка автомашин, константы разрешений и т.д. Т.е. это наборы констант. Определив их вы можете быть спокойны за их неизменность.
Ниже представлена программа с реализованным перечислением. Для его реализации следует создать класс производный от класса Enum из библиотеки enum.
Результат выполнения программы
['ФЕВ', 2]
февраль
январь 1
февраль ['ФЕВ', 2]
март 3
апрель 4
май 5
июнь 6
июль 7
август 8
сентябрь 9
октябрь 10
ноябрь 11
декабрь 12
Сделаем несколько пояснений к программе.
- В перечислении есть имена элементов и их значения. Например 'январь' это имя, а 1 это значение.
- В качестве значений могут быть взяты константы любого типа. В нашем примере это целые числа и одно значение это список.
- Ниже показано, как получить значение, если известно имя (value) и как получить имя (name), если известно значение.
- Наконец, сам класс, производный от Enum обладает свойством итератора, позволяющим выводит в цикле имена и значения элементов перечисления.
- Особо отметим два важных свойства представленных перечислений: 1. Не может быть двух элементов с одинаковым именем. 2. Если два элемента имеют одинаковые значения, то видимым является только первый по порядку элемент.
Перечисление можно легко преобразовать в список, что показано в программе ниже
Результат выполнения программы
[['январь', 1], ['февраль', 2], ['март', 3], ['апрель', 4], ['май', 5], ['июнь', 6], ['июль', 7], ['август', 8], ['сентябрь', 9], ['октябрь', 10], ['ноябрь', 11], ['декабрь', 12]]
Другой способ задания перечисления представлен ниже
Результат выполнения
red 1
blue 2
black 3
green 4
Для того, чтобы гарантировать уникальность значений элементов перечислений используется декоратор @unique. Пример программы представлен ниже.
Среди возможностей библиотеки enum следует отметить функцию auto() для генерации
Результат выполнения программы
A 1
B 2
C 3
Я изложил далеко не все возможности библиотеки enum. На мой взгляд этого достаточно для использования её в прикладных программах. Но возможно я напишу ещё одну статью о возможностях enum.
Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.