Išvardijimai

Skip to content

Tai mašinu versta tekstas, kuriame gali būti klaidų!

Enums (enumeracijos) yra būdas apibrėžti duomenų tipą, kuris gali turėti tik ribotą rinkinį iš anksto apibrėžtų verčių. Tai palengvina klaidų išvengimą, nes kintamasis gali turėti tik galiojančias vertes.

Enums griežtai kalbant nenaudojami patikrai, tačiau jie padeda apriboti kintamojo galiojančias vertes, taigi gali padėti išvengti klaidų.

Pavyzdžiui, jei turite klasę, kuri reprezentuoja automobilį, galite naudoti Enum apibrėžti, kokios spalvos automobilis gali būti:

from enum import Enum

class CarColor(Enum):
    RED = "red"
    BLUE = "blue"
    GREEN = "green"
    BLACK = "black"
    WHITE = "white"

class Car:
    def __init__(self, make: str, model: str, year: int, color: CarColor):
        self.make = make
        self.model = model
        self.year = year
        self.color = color

Kodėl?

Mūsų IDE teikia geresnį automatinį užbaigimą, kai naudojame išvardijimus (enums), ir tai padeda išvengti (apsunkina) neteisingų verčių nustatymo. Jei bandysime priskirti spalvą, kuri nėra apibrėžta CarColor, Python išmes klaidą. Tai daro kodą patikimesnį ir lengviau prižiūrimą. Kuo mažiau galimų klaidų gali įvykti, tuo geresnės kokybės kodą gauname.

Įsivaizduokime, kad turime funkciją, kuri apdorja mokėjimo būdus: PayPal, VISA, MASTERCARD ir BITCOIN. Naudodami išvardijimą mokėjimo būdams, galime užtikrinti, kad funkcija gaus tik teisingus mokėjimo būdus, o ne "MASTERCARDD" ar "CASH", kas gali sukelti klaidų programoje.

Enum Meme

Easy Užduotis 1 – Sukurkite Enum

Sukurkite Enum, pavadintą EyeColor ir įgyvendinkite jį Person klasėje iš ankstesnio modulio. EyeColor turi turėti šias vertes:

  • BLUE
  • BROWN
  • GREEN
  • HAZEL

Enum dažnai naudojamas žaidimų kūrime

Jeigu paieškosite įvairių žaidimų dokumentacijoje, dažnai pamatysite, kad jie naudoja Enums apibrėžti tokius dalykus kaip ginklai, priešai, lygiai ir panašiai. Taip yra todėl, kad tai palengvina tokių dalykų valdymą kode ir lengviau išvengti klaidų.

https://learn.microsoft.com/en-us/minecraft/creator/scriptapi/minecraft/server/blockpistonstate?view=minecraft-bedrock-stable

Sveikinimai, dabar supranti išvardijimus