enum

Содержание
Введение
Перебор (итерация)
Статьи про Python

Введение

Перечисление-это набор символических имен (членов), привязанных к уникальным, постоянным значениям.

Внутри перечисления члены могут сравниваться по идентичности

Также по ним можно итерировать (пример)

Создайте файл enum_demo.py и копируйте туда код из примеров.

Запустить файл можно командой python3 enum_demo.py

from enum import Enum # Using enum class create enumerations class Days(Enum): Mon = 1 Tue = 2 Wed = 3 Sun = 7 # print the enum member as a string print ("The enum member as a string is : ", end="") print (Days.Mon) # print the enum member as a repr print ("The enum member as a repr is : ", end="") print (repr(Days.Sun)) # Check type of enum member print ("The type of enum member is : ", end ="") print (type(Days.Mon)) # print name of enum member print ("The name of enum member is : ", end ="") print (Days.Tue.name) # print value of enum member print ("The value of enum member is : ", end ="") print (Days.Tue.value) print(f"{Days.Wed} name is {Days.Wed.name} value is {Days.Wed.value}")

python enum_demo.py

The enum member as a string is : Days.Mon The enum member as a repr is : <Days.Sun: 7> The type of enum member is : <enum 'Days'> The name of enum member is : Tue The value of enum member is : 2 Days.Wed name is Wed value is 3

Перебор (итерация)

Можно перебрать члены класса циклом

for day in Days: print(f"{day} name is {day.name} value is {day.value}")

Days.Mon name is Mon value is 1 Days.Tue name is Tue value is 2 Days.Wed name is Wed value is 3 Days.Sun name is Sun value is 7

Пример

Попробуем разобраться для чего нужен enum.

Допустим стоит задача создать класс User, у которого есть два атрибута name и type

name - строка

type - кастомный тип, может иметь три значения Admin, Moderator и Customer

Требования:

Если user_a и user_b разных типов, это должно быть видно при проверке функцией type

user_a.type == user_b.type False

Тип должен быть кастомным, называться может USER_TYPE, UserType или что-то в этом роде.

type(user_a.type) <class 'USER_TYPE&39;>

Из второго требования вытекает, что тип не дожен быть просто строкой "Admin", "Moderator" или "Customer"

Article author: Andrei Olegovich

Похожие статьи
Интерактивный режим
dict, list, str …
\: перенос строки
if, elif, else
Циклы
Функции
try except
Пакеты
ООП
Опеределить тип переменной Python
Работа с REST API на Python
Файлы: записать, прочитать…
Работа с базами данных
datetime: Дата и время в Python
json.dumps
Сложности при работе с Python
Фреймворки: Django, Flask
socket: Python Sockets
Виртуальное окружение
subprocess: bash команды из Python
multiprocessing: несколько процессов одновременно
psutil: cистемные ресурсы
sys.argv: аргументы командной строки
PyCharm: IDE
pydantic: валидация данных
paramiko: SSH из Python
logging: запись в лог
Обучение Python

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su, info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: