Les enumeracions en Python s'implementen utilitzant el mòdul anomenat enumeració . Les enumeracions es creen utilitzant classes . Els enumeradors tenen noms i valors associats a ells. Cobrim els diferents conceptes de Python Enum en aquest article.
Què són les enumeracions i per què són útils?
Les enumeracions o enumeracions són un conjunt de noms simbòlics lligats a valors únics. Es pot repetir per tornar els seus membres canònics en ordre de definició. Proporciona una manera de crear un codi més llegible i autodocumentat mitjançant l'ús de noms significatius en lloc de valors arbitraris.
Propietats de Enum
- Les enumeracions es poden mostrar com a corda o repr.
- Les enumeracions es poden comprovar per als seus tipus utilitzant tipus () .
- El nom La paraula clau s'utilitza per mostrar el nom del membre enumerat.
Quins són els avantatges d'Enum
Alguns dels avantatges d'utilitzar enumeracions inclouen:
- Facilitat de manteniment: Les enumeracions centralitzen la definició dels valors del nom, cosa que facilita l'actualització o l'ampliació del conjunt de valors segons els nostres requisits.
- Llegibilitat i autodocumentació: Les enumeracions proporcionen noms significatius als valors, fent que el codi sigui més llegible per l'home i s'explica per si mateix.
- Tipus de seguretat : Les enumeracions proporcionen un cert nivell de seguretat de tipus, assegurant que només es poden utilitzar valors vàlids.
- Risc reduït d'errors : Les enumeracions ajuden a prevenir l'ús de valors incorrectes o inconsistents al vostre codi, reduint el risc d'errors i errors.
Classe enumeració en Python
Codi Python per demostrar enumeracions
Aquest codi defineix una classe d'enumeracióSeason>amb quatre membres: PRIMAVERA, ESTIU, TARDOR i HIVERN. Mostra les propietats clau de l'enum, com ara accedir a un membre d'enum, el seu nom i el seu valor. A més, mostra com obtenir una llista de tots els membres d'enum. La sortida reflecteix el nom, el valor, el tipus i una llista de totsSeason>enumeració de membres.
Python 3
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))> |
>
>
Sortida:
Season.SPRING SPRING 1 [, , , ]>
Modes d'accés
Es pot accedir als membres d'enum de dues maneres:
- Per valor :- En aquest mètode, es passa el valor del membre enum.
- Per nom :- En aquest mètode, es passa el nom del membre enum.
També es pot accedir a un valor o nom separat mitjançant l' nom o valor paraula clau.
El codi defineix una classe d'enumeració ‘ Season'> amb quatre membres. Mostra com accedir als membres de la enumeració per valor i nom. Demostra que podeu obtenir un membre d'enumeració especificant el seu valor o nom, i després accedir al seu nom o valor en conseqüència. Aquest codi proporciona exemples d'accés de membres d'enumeració basat en valors i en noms.
Python 3
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)> |
>
>
Sortida:
The enum member associated with value 2 is : SUMMER The enum member associated with name AUTUMN is : 3>
Les enumeracions són iterable . Es poden repetir mitjançant bucles
En aquest exemple, farem servir per bucle per imprimir tots els membres de la classe Enum.
El codi defineix una classe d'enumeració ‘ Season'> amb quatre membres. Itera pels membres enumerats i imprimeix els seus valors i noms. La sortida mostra el valor de cada membre d'enum i el seu nom complet, proporcionant una manera de treballar i mostrar els valors d'enum.
Python 3
from> enum>import> Enum> class> Season(Enum):> >SPRING>=> 1> >SUMMER>=> 2> >AUTUMN>=> 3> >WINTER>=> 4> for> season>in> (Season):> >print>(season.value,>'-'>,season)> |
>
>
Sortida:
1 - Season.SPRING 2 - Season.SUMMER 3 - Season.AUTUMN 4 - Season.WINTER>
Enumeracions suporten H cendra
En aquest exemple, mostrarem com els usuaris poden utilitzar el hash de la classe Enum que es pot utilitzar diccionaris o col · leccions .
Aquest codi utilitza el ‘ enum'> mòdul per definir una classe d'enumeració ‘ Animal'> amb tres membres: gos, gat i lleó. Després crea un diccionaridi>i li assigna valors en funció dels membres enumerats. Finalment, comprova si el diccionari coincideix amb un parell clau-valor específic.
Python 3
com convertir un nombre enter en una cadena en java
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'>)> |
>
>
Sortida:
Enum is hashed>
Compara enumeracions a Python
Les enumeracions admeten dos tipus de comparacions, que són:
- Identitat :- Es comprova mitjançant paraules clau és i no és .
- Igualtat :- Comparacions d'igualtat de == i != també s'admeten tipus.
Aquest codi defineix una classe d'enumeracióAnimal>utilitzant elenum>mòdul amb tres membres: gos, gat i lleó. A continuació, realitza comparacions entre membres enumerats per comprovar la igualtat i la desigualtat.
Python 3
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'>)> |
>
>
Sortida:
Dog and cat are different animals Lions and cat are different>