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 geassocieerd. 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:

  • Gemak van onderhoud: 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.
  • Verminderde kans 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 opsommingsklasseSeason>met vier leden: SPRING, SUMMER, HERFST en WINTER. Het toont de belangrijkste eigenschappen van de enum, zoals toegang tot een enum-lid, de naam en de waarde ervan. Bovendien laat het zien hoe u een lijst met alle enum-leden kunt verkrijgen. De uitvoer weerspiegelt de naam, waarde, type en een lijst met alleSeason>enum-leden.



Python3






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

voordelen van elektriciteit
>

>

Uitgang:

erfenis java
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.
  • Bij naam :- Bij deze methode wordt de naam van het enum-lid doorgegeven.

Een afzonderlijke 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.

Python3




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, waardoor een manier wordt geboden om met enumwaarden te werken en deze weer te geven.

Python3

ssh volledige vorm




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 gemaaktdi>en wijst er waarden aan toe op basis van enum-leden. Ten slotte controleert het of het woordenboek overeenkomt met een specifiek sleutel-waardepaar.

Python3


vergelijk met string



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

>

Java is gelijk

>

Uitgang:

Enum is hashed>

Vergelijk Enums in Python

Opsommingen ondersteunen twee soorten vergelijkingen, namelijk:

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

Deze code definieert een opsommingsklasseAnimal>de ... gebruikenenum>module met drie leden: hond, kat en leeuw. Vervolgens voert het vergelijkingen uit tussen enum-leden om te controleren op gelijkheid en ongelijkheid.

Python3




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>