Enumeroj

Skip to content

Ĉ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

Kialo?

Nia IDE donas pli bonan aŭtokompletigon kiam ni uzas enumojn, kaj ni evitas (malfaciligas) starigi nevalidajn valorojn. Se ni provas atribui koloron, kiu ne estas difinita en CarColor, Python ĵetos eraron. Tio faras la kodon pli robosta kaj pli facila por konservi. Ju malpli eblaj eraroj povas okazi, des pli bona kvalito la kodo havas.

Imagu, ke ni havas funkcion, kiu traktas pagmetodojn: PayPal, VISA, MASTERCARD kaj BITCOIN. Uzante Enum por pagmetodoj, ni povas certigi, ke la funkcio nur ricevas validajn pagmetodojn, kaj ne "MASTERCARDD""CASH", kio povas kaŭzi erarojn en la programo.

Enum Meme

Easy 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:

  • BLUE
  • BROWN
  • GREEN
  • HAZEL

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.

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

Gratuloj, vi nun komprenas enumojn