logo

enum u Pythonu

Nabrajanje u Pythonu implementirano je korištenjem modula pod nazivom ' nabrajanje '. Nabrajanja se izrađuju pomoću klase . Enumi imaju imena i vrijednosti povezan s njima. Pokrijmo različite koncepte Piton Enum u ovom članku.

Što su enumi i zašto su korisni?

Enumeracije ili enumi su skup simboličkih imena vezanih za jedinstvene vrijednosti. Može se ponavljati kako bi se vratili njegovi kanonski članovi u redoslijedu definicije. Omogućuje način za stvaranje čitljivijeg i samodokumentirajućeg koda korištenjem smislenih imena umjesto proizvoljnih vrijednosti.

Svojstva enuma

  • Enume se mogu prikazati kao niz ili repr.
  • Tipovi enuma mogu se provjeriti pomoću tip() .
  • ' ime ' ključna riječ koristi se za prikaz imena člana enuma.

Koje su prednosti Enuma

Neke od prednosti korištenja enuma uključuju:



  • Lakoća održavanja: Enumi centraliziraju definiciju vrijednosti naziva što olakšava nadogradnju ili proširenje skupa vrijednosti prema našim zahtjevima.
  • Čitljivost i samodokumentacija: Enumi daju smislena imena vrijednostima čineći kod čitljivijim i razumljivijim sam po sebi.
  • Sigurnost tipa : Enumi pružaju određenu razinu sigurnosti tipa osiguravajući da se mogu koristiti samo važeće vrijednosti.
  • Smanjeni rizik od grešaka : Enumi pomažu spriječiti korištenje netočnih ili nedosljednih vrijednosti u vašem kodu smanjujući rizik od bugova i pogrešaka.

Enum klasa u Pythonu

Python kod za demonstraciju nabrajanja 

Ovaj kod definira klasu nabrajanjaSeasonsa četiri člana: PROLJEĆE LJETO JESEN i ZIMA. Prikazuje ključna svojstva enuma kao što je pristup članu enuma, njegovo ime i vrijednost. Dodatno pokazuje kako dobiti popis svih članova enuma. Izlaz odražava vrstu vrijednosti imena i popis svihSeasončlanovi enuma.

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

Izlaz: 



Season.SPRING  
SPRING
1


[ ]

Načini pristupa  

Članovima enuma može se pristupiti na dva načina:

  • Po vrijednosti :- U ovoj metodi prosljeđuje se vrijednost enum člana.
  • Po imenu :- U ovoj metodi prosljeđuje se ime člana enuma.

Zasebnoj vrijednosti ili nazivu također se može pristupiti pomoću ' ime ' ili ' vrijednost ' ključna riječ.

Kod definira klasu nabrajanja ' Season' sa četiri člana. Prikazuje kako pristupiti enum članovima prema vrijednosti i imenu. Pokazuje da možete dobiti član enum navođenjem njegove vrijednosti ili naziva i zatim pristupiti njegovom imenu ili vrijednosti u skladu s tim. Ovaj kod pruža primjere za pristup enum članu temeljen na vrijednosti i na imenu.



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) 

Izlaz: 

preuzimanje youtube videa na vlc
The enum member associated with value 2 is : SUMMER  
The enum member associated with name AUTUMN is : 3

Nabrajanja su iterable . Mogu se ponavljati pomoću petlji

U ovom primjeru ćemo koristiti za petlja za ispis svih članova klase Enum.

Kod definira klasu nabrajanja ' Season' sa četiri člana. Iterira kroz članove enuma i ispisuje njihove vrijednosti i imena. Izlaz prikazuje vrijednost svakog člana enuma i njegov potpuno kvalificirani naziv koji omogućuje način rada i prikaza enum vrijednosti.

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

Izlaz: 

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

Nabrajanje podržava H pepeljenje

U ovom primjeru pokazat ćemo kako korisnici mogu raspršiti klasu Enum koja se može koristiti u rječnicima ili postavlja .

Ovaj kod koristi ' enum' modul za definiranje klase nabrajanja ' Animal' s tri člana: pas mačka i lav. Zatim stvara rječnikdii dodjeljuje mu vrijednosti na temelju enum članova. Na kraju provjerava podudara li se rječnik s određenim parom ključ-vrijednost.

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

Izlaz:

Enum is hashed  

Usporedite enume u Pythonu

Enumeracije podržavaju dvije vrste usporedbi koje su:

  • Identitet :- Ovo se provjerava pomoću ključnih riječi ' je 'i' nije '.
  • Jednakost :- Usporedbe jednakosti ' == 'i' != ' tipovi su također podržani.

Ovaj kod definira klasu nabrajanjaAnimalpomoćuenummodul s tri člana: pas mačka i lav. Zatim izvodi usporedbe između članova enuma kako bi provjerio jednakost i nejednakost.

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

Izlaz: 

Dog and cat are different animals  
Lions and cat are different