logo

перелік у Python

Перерахування в Python реалізовано за допомогою модуля під назвою ' перелік '. Перерахування створюються за допомогою класи . Enums мають імена та значення пов'язані з ними. Давайте розглянемо різні поняття Python Enum у цій статті.

Що таке Enum і чому вони корисні?

Перерахування або Enum — це набір символічних імен, прив’язаних до унікальних значень. Його можна повторити, щоб повернути його канонічні члени в порядку визначення. Він надає спосіб створити більш читабельний і самодокументований код, використовуючи осмислені імена замість довільних значень.

Властивості Enum

  • Переліки можна відображати як рядок або репр.
  • Переліки можна перевірити на їх типи за допомогою тип() .
  • " назва Ключове слово ' використовується для відображення імені члена enum.

Які переваги Enum

Деякі з переваг використання переліків включають:

  • Простота обслуговування: Enum централізує визначення значень імен, що полегшує оновлення або розширення набору значень відповідно до наших вимог.
  • Читабельність і самодокументація: Enum надає змістовні імена значенням, що робить код більш зрозумілим для людини та зрозумілим.
  • Тип безпеки : Enum забезпечує певний рівень безпеки типу, гарантуючи, що можна використовувати лише дійсні значення.
  • Знижений ризик помилок : Переліки допомагають запобігти використанню неправильних або неузгоджених значень у вашому коді, зменшуючи ризик помилок і помилок.

Клас Enum у Python

Код Python для демонстрації перерахувань 



Цей код визначає клас перерахуванняSeasonз чотирьох учасників: ВЕСНА, ЛІТО, ОСІНЬ і ЗИМА. Він демонструє ключові властивості enum, такі як доступ до члена enum, його ім’я та значення. Крім того, він демонструє, як отримати список усіх членів enum. Вихід відображає тип значення імені та список усіхSeasonчлени enum.

різниця тигрові леви
Python
from enum import Enum class Season(Enum): SPRING = 1 SUMMER = 2 AUTUMN = 3 WINTER = 4 print(Season.SPRING) print(Season.SPRING.name) print(Season.SPRING.value) print(type(Season.SPRING)) print(repr(Season.SPRING)) print(list(Season)) 

Вихід: 

Season.SPRING  
SPRING
1


[ ]

Режими доступу  

Доступ до членів Enum можна отримати двома способами:

  • За значенням :- У цьому методі передається значення члена enum.
  • По імені :- У цьому методі передається ім'я члена enum.

Окреме значення або ім'я також можна отримати за допомогою ' назва 'або' значення ключове слово.

Код визначає клас перерахування ' Season' з чотирма членами. Він демонструє, як отримати доступ до членів enum за значенням і назвою. Це демонструє, що ви можете отримати член enum, вказавши його значення або ім’я, а потім отримати відповідний доступ до його імені чи значення. У цьому коді наведено приклади доступу до членів enum як на основі значення, так і на основі імені.

Python
from enum import Enum class Season(Enum): SPRING = 1 SUMMER = 2 AUTUMN = 3 WINTER = 4 print('The enum member associated with value 2 is : ' Season(2).name) print('The enum member associated with name AUTUMN is : ' Season['AUTUMN'].value) 

Вихід: 

The enum member associated with value 2 is : SUMMER  
The enum member associated with name AUTUMN is : 3

Перерахування є ітерований . Їх можна повторювати за допомогою циклів

У цьому прикладі ми будемо використовувати для петля щоб надрукувати всі члени класу Enum.

Код визначає клас перерахування ' Season' з чотирма членами. Він перебирає члени enum і друкує їхні значення та імена. Вихідні дані відображають значення кожного члена переліку та його повне ім’я, що дає змогу працювати та відображати значення переліку.

Python
from enum import Enum class Season(Enum): SPRING = 1 SUMMER = 2 AUTUMN = 3 WINTER = 4 for season in (Season): print(season.value'-'season) 

Вихід: 

як перетворити char на рядок
1 - Season.SPRING  
2 - Season.SUMMER
3 - Season.AUTUMN
4 - Season.WINTER

Підтримка перерахувань H озолення

У цьому прикладі ми покажемо, як користувачі можуть хешувати клас Enum, який можна використовувати в словники або набори .

Цей код використовує ' enum' модуль для визначення класу перерахування ' Animal' з трьома членами: собакою, котом і левом. Потім створюється словникdiі присвоює йому значення на основі членів enum. Нарешті, він перевіряє, чи відповідає словник певній парі ключ-значення.

Python
import enum class Animal(enum.Enum): dog = 1 cat = 2 lion = 3 di = {} di[Animal.dog] = 'bark' di[Animal.lion] = 'roar' if di == {Animal.dog: 'bark' Animal.lion: 'roar'}: print('Enum is hashed') else: print('Enum is not hashed') 

Вихід:

видалити angular cli
Enum is hashed  

Порівняйте Enum у Python

Перерахування підтримують два типи порівнянь:

  • Ідентичність :- Вони перевіряються за допомогою ключових слів ' є 'і' не є '.
  • Рівність :- Порівняння рівності ' == 'і' != типи також підтримуються.

Цей код визначає клас перерахуванняAnimalвикористовуючиenumмодуль із трьома членами: собакою, котом і левом. Потім він виконує порівняння між членами переліку, щоб перевірити рівність і нерівність.

Python
import enum class Animal(enum.Enum): dog = 1 cat = 2 lion = 3 if Animal.dog is Animal.cat: print('Dog and cat are same animals') else: print('Dog and cat are different animals') if Animal.lion != Animal.cat: print('Lions and cat are different') else: print('Lions and cat are same') 

Вихід: 

Dog and cat are different animals  
Lions and cat are different