Naar hoofdinhoud
🔒 Voorbeeldmodus. De eerste vijftien Foundations-lessen zijn gratis; deze is Pro. Start een 7-daagse trial om de editor, AI-hints en de rest van het curriculum te ontgrendelen. Kaart vereist, op elk moment opzegbaar in Dashboard.Start 7-daagse trial →
← CursussenSenior Deep-DivesModule 10 · Production idioms (modern Python)typing.Never + assert_never — exhaustiveness checks the compiler enforcespredict147 / 161
+150 XP
Opdracht
📝 **Taak:** Voorspel de uitvoer van 5 regels. Een Color StrEnum kent 3 varianten. `describe_all` is exhaustief (elke variant wordt behandeld); `describe_partial` verwerkt alleen ROOD. De trace: write_all op alle 3 de varianten slaagt en drukt 3 regels af; beschrijven_partial op ROOD drukt `warm` af; beschrijven_partial op GROEN bereikt de vertakking assert_never en verhoogt AssertionError, die de buitenste poging opvangt. 📋 Implementeer bovenstaande functie. Tests worden automatisch uitgevoerd. 💡 **Hint:** Herlees de theorie als je vastloopt.
Voorspel uitvoer

Lees de code zorgvuldig

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")

Wat zal het programma uitprinten? Schrijf hier:

💬 Discussie

Wees de eerste — stel een vraag of deel een tip.
Log in om mee te doen aan de discussie. Lezen is gratis.
Discussie laden…