logo

enum v Pythonu

Výčty v Pythonu jsou implementovány pomocí modulu s názvem ' enum '. Výčty se vytvářejí pomocí třídy . Enumové mají jména a hodnoty s nimi spojené. Pojďme pokrýt různé koncepty Krajta Výčet v tomto článku.

Co jsou výčty a proč jsou užitečné?

Enumerations nebo Enums je sada symbolických jmen vázaných na jedinečné hodnoty. Může být iterován, aby se vrátily jeho kanonické členy v pořadí definice. Poskytuje způsob, jak vytvořit čitelnější a samostatně dokumentující kód pomocí smysluplných názvů namísto libovolných hodnot.

Vlastnosti Enum

  • Výčty lze zobrazit jako řetězec nebo repr.
  • Typy výčtů lze zkontrolovat pomocí typ() .
  • ' jméno Klíčové slovo ' se používá k zobrazení jména člena výčtu.

Jaké jsou výhody Enum

Některé z výhod používání výčtů zahrnují:



  • Snadná údržba: Výčty centralizují definici hodnot názvů, což usnadňuje upgrade nebo rozšíření sady hodnot podle našich požadavků.
  • Čitelnost a vlastní dokumentace: Výčty poskytují hodnotám smysluplné názvy, díky nimž je kód pro člověka čitelnější a samovysvětlující.
  • Typová bezpečnost : Výčty poskytují určitou úroveň typové bezpečnosti zajišťující, že lze použít pouze platné hodnoty.
  • Snížené riziko chyb : Výčty pomáhají zabránit použití nesprávných nebo nekonzistentních hodnot ve vašem kódu a snižují riziko chyb a chyb.

Třída Enum v Pythonu

Kód Pythonu pro demonstraci výčtů 

Tento kód definuje třídu výčtuSeasonse čtyřmi členy: JARO LÉTO PODZIM a ZIMA. Ukazuje klíčové vlastnosti výčtu, jako je přístup k členu výčtu, jeho názvu a hodnotě. Navíc ukazuje, jak získat seznam všech členů výčtu. Výstup odráží typ hodnoty názvu a seznam všechSeasonenum členů.

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)) 

výstup: 



Season.SPRING  
SPRING
1


[ ]

Přístup k režimům  

Ke členům výčtu lze přistupovat dvěma způsoby:

  • Podle hodnoty :- V této metodě se předává hodnota členu enum.
  • Podle jména :- V této metodě se předává jméno člena enum.

K samostatné hodnotě nebo názvu lze také přistupovat pomocí ' jméno ' nebo ' hodnota klíčové slovo.

Kód definuje třídu výčtu ' Season' se čtyřmi členy. Ukazuje, jak přistupovat k členům výčtu podle hodnoty a názvu. Ukazuje, že můžete získat člen výčtu zadáním jeho hodnoty nebo názvu a poté odpovídajícím způsobem přistupovat k jeho názvu nebo hodnotě. Tento kód poskytuje příklady pro přístup členů výčtu na základě hodnoty i názvu.



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) 

výstup: 

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

Výčty jsou iterovatelné . Mohou být iterovány pomocí smyček

V tomto příkladu použijeme pro smyčka vytisknout všechny členy třídy Enum.

Kód definuje třídu výčtu ' Season' se čtyřmi členy. Iteruje členy výčtu a vytiskne jejich hodnoty a názvy. Výstup zobrazuje hodnotu každého člena výčtu a jeho plně kvalifikovaný název, což poskytuje způsob práce s hodnotami výčtu a jejich zobrazení.

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

výstup: 

1 - Season.SPRING  
2 - Season.SUMMER
3 - Season.AUTUMN
4 - Season.WINTER

Podpora výčtů H popelavý

V tomto příkladu si ukážeme, jak mohou uživatelé hashovat třídu Enum, kterou lze použít v slovníky nebo sady .

Tento kód používá ' enum' modul k definování výčtové třídy ' Animal' se třemi členy: pes kočka a lev. Poté vytvoří slovníkdia přiřazuje mu hodnoty na základě členů výčtu. Nakonec zkontroluje, zda se slovník shoduje s konkrétním párem klíč-hodnota.

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') 

výstup:

Enum is hashed  

Porovnejte výčty v Pythonu

Výčty podporují dva typy srovnání, které jsou:

  • Identita :- Kontrolují se pomocí klíčových slov ' je ' a ' není '.
  • Rovnost :- Srovnání rovnosti ' == ' a ' != Podporovány jsou také typy '.

Tento kód definuje třídu výčtuAnimalpomocíenummodul se třemi členy: pes kočka a lev. Poté provede porovnání mezi členy výčtu, aby zkontroloval rovnost a nerovnost.

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') 

výstup: 

Dog and cat are different animals  
Lions and cat are different