Ĉi tio estas maŝine tradukita teksto kiu povas enhavi erarojn!
Enums (enumerations) estas maniero difini datentipon kiu povas havi nur limigitan aron de antaŭdifinitaj valoroj. Tio faciligas eviti erarojn per la fakto ke variablo povas havi nur validajn valorojn.
Enums strikte ne uzas por validigo, sed ili helpas nin limigi kiujn valorojn estas validaj por variablo, kaj tiel ili povas helpi preventi erarojn.
Ekzemple, se vi havas klaso kiu reprezentas aŭton, vi povas uzi Enumon por difini kiujn kolorojn la aŭto povas havi:
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
Kial?
Nia IDE donas pli bonan aŭtokompletigon kiam ni uzas enumojn, kaj ni evitas (fariĝas malfacile) agi nevalidajn valorojn. Se ni provas asigni koloron, kiu ne estas difinita en CarColor, Python lanĉos eraron. Tio igas la kodon pli robuste kaj pli facile prizorgata. Ju malpli da eblaj eraroj povas okazi, des pli bonan kvaliton ni ricevas de la kodo.
Imagu, ke ni havas funkcion, kiu pritraktas pagmetodojn: PayPal, VISA, MASTERCARD kaj BITCOIN. Per uzi Enum por pagmetodoj, ni povas certigi, ke la funkcio ricevas nur validajn pagmetodojn, kaj ne "MASTERCARDD" aŭ "CASH", kiuj povus kaŭzi erarojn en la programo.
Tasko 1 - Kreu Enum-on
Kreu Enum-on nomatan EyeColor kaj implementu ĝin en la klaso Person el la antaŭa modulo. EyeColor devas havi la jenajn valorojn:
BLUEBROWNGREENHAZEL
Enum estas ofte uzata en ludokreado
Se vi serĉas en la dokumentacio de diversaj ludoj, vi ofte vidos, ke ili uzas Enum-ojn por difini aĵojn kiel armiloj, malamikoj, niveloj kaj simile. Tio estas ĉar ĝi faciligas la administradon de tiaj aĵoj en la kodo, kaj ĝi faciligas eviti erarojn.

