Uppräkningar i Python implementeras genom att använda modulen som heter uppräkning . Uppräkningar skapas med hjälp av klasser . Enums har namn och värderingar förknippas med dem. Låt oss täcka de olika begreppen Pytonorm Enum i denna artikel.
Vad är Enums och varför är de användbara?
Enumerations eller Enums är en uppsättning symboliska namn bundna till unika värden. Det kan upprepas för att returnera dess kanoniska medlemmar i definitionsordning. Det ger ett sätt att skapa mer läsbar och självdokumenterande kod genom att använda meningsfulla namn istället för godtyckliga värden.
Egenskaper hos Enum
- Uppräkningar kan visas som sträng eller repr.
- Uppräkningar kan kontrolleras för deras typer med hjälp av typ() .
- De namn nyckelord används för att visa namnet på enum-medlemmen.
Vilka är fördelarna med Enum
Några av fördelarna med att använda enums inkluderar:
- Enkelt underhåll: Enums centraliserar definitionen av namnvärden vilket gör det lättare att uppgradera eller utöka uppsättningen värden enligt våra krav.
- Läsbarhet och självdokumentation: Enums ger meningsfulla namn på värderingar, vilket gör koden mer läsbar och självförklarande.
- Typ säkerhet : Enums ger en viss nivå av typsäkerhet, vilket säkerställer att endast giltiga värden kan användas.
- Minskad risk för fel : Uppräkningar hjälper till att förhindra användningen av felaktiga eller inkonsekventa värden i din kod, vilket minskar risken för buggar och fel.
Enum-klass i Python
Python-kod för att demonstrera uppräkningar
Denna kod definierar en uppräkningsklassSeason>med fyra medlemmar: VÅR, SOMMAR, HÖST och VINTER. Den visar nyckelegenskaperna för enummet, som att komma åt en enummedlem, dess namn och värde. Dessutom visar den hur man får en lista över alla enummedlemmar. Utdata återspeglar namn, värde, typ och en lista över allaSeason>uppräkning medlemmar.
strängvärde av
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))> |
>
>
Produktion:
Season.SPRING SPRING 1 [, , , ]>
Åtkomstlägen
Enum-medlemmar kan nås på två sätt:
- Efter värde :- I den här metoden skickas värdet av enum medlem.
- Vid namn :- I den här metoden skickas namnet på enum-medlemmen.
Ett separat värde eller namn kan också nås med hjälp av namn eller värde nyckelord.
Koden definierar en uppräkningsklass ' Season'> med fyra medlemmar. Den visar hur man får tillgång till enum-medlemmar efter värde och namn. Det visar att du kan få en uppräkningsmedlem genom att ange dess värde eller namn och sedan komma åt dess namn eller värde i enlighet med detta. Den här koden ger exempel för både värdebaserad och namnbaserad enummedlemsåtkomst.
Python3
ddl vs dml
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)> |
>
>
Produktion:
The enum member associated with value 2 is : SUMMER The enum member associated with name AUTUMN is : 3>
Uppräkningar är iterabel . De kan itereras med slingor
I det här exemplet kommer vi att använda för slinga för att skriva ut alla medlemmar i klassen Enum.
Koden definierar en uppräkningsklass ' Season'> med fyra medlemmar. Den itererar genom enum-medlemmarna och skriver ut deras värden och namn. Utdata visar varje enum-medlems värde och dess fullständiga namn, vilket ger ett sätt att arbeta med och visa enum-värden.
Python3
java bubbel sortering
from> enum>import> Enum> class> Season(Enum):> >SPRING>=> 1> >SUMMER>=> 2> >AUTUMN>=> 3> >WINTER>=> 4> for> season>in> (Season):> >print>(season.value,>'-'>,season)> |
>
>
Produktion:
1 - Season.SPRING 2 - Season.SUMMER 3 - Season.AUTUMN 4 - Season.WINTER>
Uppräkningar stöder H aska
I det här exemplet kommer vi att visa hur användare kan hasha klassen Enum som kan användas i ordböcker eller set .
Denna kod använder ' enum'> modul för att definiera en uppräkningsklass ' Animal'> med tre medlemmar: hund, katt och lejon. Det skapar sedan en ordbokdi>och tilldelar värden till den baserat på enum-medlemmar. Slutligen kontrollerar den om ordboken matchar ett specifikt nyckel-värdepar.
Python3
onclick javascript
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'>)> |
>
slå samman sortering java
>
Produktion:
Enum is hashed>
Jämför Enums i Python
Uppräkningar stöder två typer av jämförelser, det vill säga:
- Identitet :- Dessa kontrolleras med nyckelord är och är inte .
- Jämlikhet :- Jämställdhetsjämförelser av == och != typer stöds också.
Denna kod definierar en uppräkningsklassAnimal>användaenum>modul med tre medlemmar: hund, katt och lejon. Den utför sedan jämförelser mellan enummedlemmar för att kontrollera jämlikhet och ojämlikhet.
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'>)> |
>
>
Produktion:
Dog and cat are different animals Lions and cat are different>