Uppramingar

Skip to content

Dette er ein maskinomsett tekst som kann innehalda feil!

Enums (uppramingar) er ein måte å definera ein datatype som berre kan ha eit avgrensa sett med føredefinerte verdiar. Dette gjer det enklare å unngå feil ved at ein variabel berre kan ha gyldige verdiar.

Enums vert strengt tala ikkje nytta til validering, men dei hjelper oss med å avgrensa kva verdiar som er gyldige for ein variabel, og dermed kan dei bidra til å førebyggja feil.

For døme, viss du har ei klasse som representerer ein bil, kan du nytta ein Enum for å definera kva fargar bilen kan ha:

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
        # Dette er ein bil-klasse.
        # Initialiserer ein bil med merke, modell, år og farge.

Kvifor?

Vår IDE gjev betre autocompletion når me brukar enums, og me unngår (gjer det vanskeleg) å setja ugyldige verdiar. Um me prøver å tilordna ei farge som ikkje er definert i CarColor, vil Python kasta ei feil. Dette gjer koden meir robust og enklare å vedlikehalda. Jo færre moglege feil som kan oppstå, desto betre kvalitet får me på koden.

Sjå føre deg at me har ei funksjon som handlar betalingsmetodar: PayPal, VISA, MASTERCARD og BITCOIN. Ved å bruka ein Enum for betalingsmetodar, kan me sikra at funksjonen berre mottek gyldige betalingsmetodar, og ikkje "MASTERCARDD" eller "CASH", som kan føra til feil i programmet.

Enum Meme

Easy Oppgåve 1 – Lag ein Enum

Lag ein Enum som heiter EyeColor og implementer denne i Person klassen frå førre modul. EyeColor skal hava følgjande verdiar:

  • BLUE
  • BROWN
  • GREEN
  • HAZEL

Enum vert mykje brukt i spelutvikling

Dersom du slår opp i dokumentasjonen til ulike spel, so vil du ofte sjå at dei brukar Enums for å definere ting som våpen, fiendar, nivå og liknande. Dette er fordi det gjer det enklare å handtere slike ting i koden, og det gjer det lettare å unngå feil.

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

Gratulerer, no forstår du oppramingar