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

