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"

Похожие статьи
C
C++
Go
Groovy
Java
JavaScript
PHP
Python
Ruby
.NET/C#
Thrift
Теория Программирования

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: