logo

enumeració en Python

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 ' 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 que garanteix 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óSeasonamb 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 valor. A més, demostra com obtenir una llista de tots els membres d'enum. La sortida reflecteix el tipus de valor del nom i una llista de totsSeasonenumeració de membres.

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

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 el ' 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.



Com puc saber la mida del meu monitor?
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) 

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'enumeració i el seu nom totalment qualificat que proporciona una manera de treballar i mostrar els valors d'enumeració.

Python
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 la classe Enum que es pot utilitzar diccionaris o conjunts .

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 diccionaridii li assigna valors en funció dels membres enumerats. Finalment, comprova si el diccionari coincideix amb un parell clau-valor específic.

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

Sortida:

Enum is hashed  

Compareu enumeracions a Python

Les enumeracions admeten dos tipus de comparacions que són:

  • Identitat :- Es comprova amb paraules clau " és 'i' no ho és '.
  • Igualtat :- Comparacions d'igualtat de ' == ' i ' != ' també són compatibles.

Aquest codi defineix una classe d'enumeracióAnimalutilitzant elenummòdul amb tres membres: gos gat i lleó. A continuació, realitza comparacions entre membres enumerats per comprovar la igualtat i la desigualtat.

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

Sortida: 

Dog and cat are different animals  
Lions and cat are different