logo

enum v Pythonu

Naštevanja v Pythonu so implementirana z uporabo modula z imenom ' enum '. Naštevanja so ustvarjena z uporabo razredi . Enumi imajo imena in vrednosti povezanih z njimi. Pokrijmo različne koncepte Python Enum v tem članku.

Kaj so enumi in zakaj so uporabni?

Enumeracije ali enumi so nabor simboličnih imen, vezanih na edinstvene vrednosti. Lahko se ponovi, da vrne svoje kanonične člane v vrstnem redu definicij. Zagotavlja način za ustvarjanje bolj berljive in samodokumentirane kode z uporabo smiselnih imen namesto poljubnih vrednosti.

Lastnosti Enum

  • Enume je mogoče prikazati kot niz oz repr.
  • Enume je mogoče preveriti za njihove vrste z uporabo tip() .
  • ' ime ' ključna beseda se uporablja za prikaz imena člana enum.

Kakšne so prednosti Enuma

Nekatere prednosti uporabe enumov vključujejo:

  • Enostavnost vzdrževanja: Enumi centralizirajo definicijo vrednosti imen, kar olajša nadgradnjo ali razširitev nabora vrednosti v skladu z našimi zahtevami.
  • Berljivost in samodokumentacija: Enumi zagotavljajo smiselna imena vrednostim, zaradi česar je koda bolj berljiva in samoumevna.
  • Varnost tipa : Enumi zagotavljajo določeno raven varnosti tipa, ki zagotavlja, da se lahko uporabljajo samo veljavne vrednosti.
  • Zmanjšano tveganje za napake : Enumi pomagajo preprečiti uporabo nepravilnih ali nedoslednih vrednosti v vaši kodi, kar zmanjša tveganje za hrošče in napake.

Razred Enum v Pythonu

Koda Python za prikaz naštevanj 



Ta koda definira razred oštevilčenjaSeasons štirimi člani: POMLAD POLETJE JESEN in ZIMA. Prikazuje ključne lastnosti enuma, kot je dostop do člana enuma, njegovo ime in vrednost. Poleg tega prikazuje, kako pridobiti seznam vseh članov enum. Izhod odraža vrsto vrednosti imena in seznam vsehSeasonenum člani.

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

Izhod: 

Season.SPRING  
SPRING
1


[ ]

Načini dostopa  

Do članov Enum lahko dostopate na dva načina:

  • Po vrednosti :- V tej metodi je vrednost člana enum posredovana.
  • Po imenu :- V tej metodi se posreduje ime člana enum.

Do ločene vrednosti ali imena lahko dostopate tudi z uporabo ' ime ' ali ' vrednost ' ključna beseda.

Koda definira oštevilčevalni razred ' Season' s štirimi člani. Prikazuje, kako dostopati do članov enum po vrednosti in imenu. Dokazuje, da lahko pridobite člana enum tako, da podate njegovo vrednost ali ime in nato ustrezno dostopate do njegovega imena ali vrednosti. Ta koda nudi primere za dostop članov enum na podlagi vrednosti in imena.

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) 

Izhod: 

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

Naštevanja so ponovljiv . Ponavljajo se lahko z uporabo zank

V tem primeru bomo uporabili za zanka za tiskanje vseh članov razreda Enum.

Koda definira oštevilčevalni razred ' Season' s štirimi člani. Ponavlja člane enum in natisne njihove vrednosti in imena. Izhod prikaže vrednost vsakega člana enum in njegovo popolnoma kvalificirano ime, ki omogoča delo z vrednostmi enum in prikaz teh vrednosti.

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

Izhod: 

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

Naštevanja podpirajo H pepelenje

V tem primeru bomo pokazali, kako lahko uporabniki zgostijo razred Enum, ki ga je mogoče uporabiti v slovarji oz kompleti .

Ta koda uporablja ' enum' modul za definiranje oštevilčenega razreda ' Animal' s tremi člani: psom, mačkom in levom. Nato ustvari slovardiin mu dodeli vrednosti na podlagi članov enum. Nazadnje preveri, ali se slovar ujema z določenim parom ključ-vrednost.

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

Izhod:

Enum is hashed  

Primerjajte enume v Pythonu

Naštevanja podpirajo dve vrsti primerjav, ki sta:

testni primeri junit
  • Identiteta :- Te so preverjene s ključnimi besedami ' je ' in ' ni '.
  • Enakopravnost :- Primerjave enakosti ' == ' in ' != Podprte so tudi vrste.

Ta koda definira razred oštevilčenjaAnimalz uporaboenummodul s tremi členi: pes mačka in lev. Nato izvede primerjave med člani enum, da preveri enakost in neenakost.

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

Izhod: 

Dog and cat are different animals  
Lions and cat are different