logo

opsomming in Python

Opsommingen in Python worden geïmplementeerd met behulp van de module met de naam ' opsomming '. Opsommingen worden gemaakt met behulp van klassen . Enums hebben namen en waarden met hen verbonden. Laten we de verschillende concepten van Python Enum in dit artikel.

Wat zijn Enums en waarom zijn ze nuttig?

Opsommingen of opsommingen zijn een reeks symbolische namen die aan unieke waarden zijn gebonden. Het kan worden herhaald om de canonieke leden in definitievolgorde terug te geven. Het biedt een manier om beter leesbare en zelfdocumenterende code te maken door betekenisvolle namen te gebruiken in plaats van willekeurige waarden.

Eigenschappen van Enum

  • Enums kunnen worden weergegeven als snaar of repr.
  • Enums kunnen worden gecontroleerd op hun typen met behulp van type() .
  • De ' naam ' trefwoord wordt gebruikt om de naam van het enum-lid weer te geven.

Wat zijn de voordelen van Enum

Enkele voordelen van het gebruik van enums zijn:



  • Onderhoudsgemak: Enums centraliseren de definitie van naamwaarden, waardoor het gemakkelijker wordt om de reeks waarden te upgraden of uit te breiden volgens onze vereisten.
  • Leesbaarheid en zelfdocumentatie: Enums geven betekenisvolle namen aan waarden, waardoor de code leesbaarder en voor zichzelf spreekt.
  • Typ veiligheid : Enums bieden een bepaald niveau van typeveiligheid, waardoor wordt gegarandeerd dat alleen geldige waarden kunnen worden gebruikt.
  • Verminderd risico op fouten : Enums helpen het gebruik van onjuiste of inconsistente waarden in uw code te voorkomen, waardoor het risico op bugs en fouten wordt verminderd.

Enum-klasse in Python

Python-code om opsommingen te demonstreren 

Deze code definieert een opsommingsklasseSeasonmet vier leden: SPRING ZOMER HERFST en WINTER. Het toont de belangrijkste eigenschappen van de enum, zoals toegang tot de naam en waarde van een enum-lid. Bovendien laat het zien hoe u een lijst van alle enum-leden kunt verkrijgen. De uitvoer weerspiegelt het naamwaardetype en een lijst met allesSeasonenum-leden.

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

Uitgang: 



Season.SPRING  
SPRING
1


[ ]

Toegang tot modi  

Enum-leden zijn op twee manieren toegankelijk:

  • Op waarde :- Bij deze methode wordt de waarde van enum member doorgegeven.
  • Op naam :- Bij deze methode wordt de naam van het enum-lid doorgegeven.

Een aparte waarde of naam is ook toegankelijk via de ' naam ' of ' waarde ' trefwoord.

De code definieert een opsommingsklasse ' Season' met vier leden. Het laat zien hoe u toegang krijgt tot enum-leden op basis van waarde en naam. Het laat zien dat u een enum-lid kunt verkrijgen door de waarde of naam ervan op te geven en vervolgens dienovereenkomstig toegang te krijgen tot de naam of waarde ervan. Deze code biedt voorbeelden voor zowel op waarden gebaseerde als op naam gebaseerde toegang tot enumleden.



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) 

Uitgang: 

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

Opsommingen zijn itereerbaar . Ze kunnen worden herhaald met behulp van lussen

In dit voorbeeld gebruiken we for lus om alle leden van de klasse Enum af te drukken.

De code definieert een opsommingsklasse ' Season' met vier leden. Het doorloopt de enum-leden en drukt hun waarden en namen af. De uitvoer toont de waarde van elk enumlid en de volledig gekwalificeerde naam, wat een manier biedt om met enumwaarden te werken en deze weer te geven.

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

Uitgang: 

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

Opsommingen Ondersteuning H verassing

In dit voorbeeld laten we zien hoe gebruikers de Enum-klasse kunnen hashen die kan worden gebruikt woordenboeken of sets .

Deze code maakt gebruik van de ' enum' module om een ​​opsommingsklasse te definiëren ' Animal' met drie leden: hond kat en leeuw. Vervolgens wordt er een woordenboek gemaaktdien wijst er waarden aan toe op basis van enum-leden. Ten slotte controleert het of het woordenboek overeenkomt met een specifiek sleutel-waardepaar.

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

Uitgang:

Enum is hashed  

Vergelijk Enums in Python

Opsommingen ondersteunen twee soorten vergelijkingen:

  • Identiteit :- Deze worden gecontroleerd met behulp van trefwoorden ' is ' En ' niet '.
  • Gelijkwaardigheid : - Gelijkheidsvergelijkingen van ' == ' En ' != '-typen worden ook ondersteund.

Deze code definieert een opsommingsklasseAnimalmet behulp van deenummodule met drie leden: hond kat en leeuw. Vervolgens voert het vergelijkingen uit tussen enum-leden om te controleren op gelijkheid en ongelijkheid.

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

Uitgang: 

Dog and cat are different animals  
Lions and cat are different