Prejsť na hlavný obsah
🔒 Režim náhľadu. Prvých pätnásť lekcií Foundations je zadarmo; táto je Pro. Spustite 7-dňový trial pre odomknutie editora, AI nápovied a zvyšku kurzu. Karta vyžadovaná, zrušte kedykoľvek v Dashboard.Spustiť 7-dňový trial →
← KurzySenior Deep-DivesModule 10 · Production idioms (modern Python)typing.Never + assert_never — exhaustiveness checks the compiler enforcespredict147 / 161
+150 XP
Úloha
📝 **Úloha:** Predpovedajte 5-riadkový výstup. Color StrEnum má 3 varianty. `describe_all` je vyčerpávajúce (každý spracovaný variant); `describe_partial` spracováva iba ČERVENÚ. Sledovanie: description_all na všetkých 3 variantoch je úspešné a vytlačí 3 riadky; description_partial on RED prints `warm`; description_partial na ZELENOM dosiahne vetvu asse_never a vyvolá AssertionError, ktorú zachytí vonkajší pokus. 📋 Implementujte funkciu vyššie. Testy prebiehajú automaticky. 💡 **Tip:** Znova si prečítajte teóriu, ak sa zaseknete.
Predpovedz výstup

Prečítaj kód pozorne

from typing import assert_never
from enum import StrEnum


class Color(StrEnum):
    RED = "red"
    GREEN = "green"
    BLUE = "blue"


def describe_all(c: Color) -> str:
    match c:
        case Color.RED: return "warm"
        case Color.GREEN: return "fresh"
        case Color.BLUE: return "cool"
        case _: assert_never(c)


def describe_partial(c: Color) -> str:
    match c:
        case Color.RED: return "warm"
        case _: assert_never(c)


for c in Color:
    print(describe_all(c))

print(describe_partial(Color.RED))

try:
    describe_partial(Color.GREEN)
except Exception as e:
    print(f"{type(e).__name__} raised")

Čo program vypíše? Napíš sem:

💬 Diskusia

Buď prvý — polož otázku alebo sa podeľ o tip.
Prihlás sa aby si sa zapojil do diskusie. Čítanie je zadarmo.
Načítava sa diskusia…