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)@dataclass(kw_only=True, slots=True) — the modern senior defaultpredict143 / 161
+150 XP
Opdracht
📝 **Taak:** Voorspel de uitvoer van 5 regels. Een gebruikersdataklasse met kw_only=True + slots=True wordt opgebouwd via trefwoord; positionele constructie wordt vervolgens geprobeerd (afgewezen); Er wordt geprobeerd een attribuut toe te wijzen buiten de slots (afgewezen). Een afzonderlijke Mix-dataklasse gebruikt kw_only per veld om het trefwoord `b` te forceren, terwijl `a` en `c` positioneel blijven. 📋 Implementeer bovenstaande functie. Tests worden automatisch uitgevoerd. 💡 **Hint:** Herlees de theorie als je vastloopt.
Voorspel uitvoer

Lees de code zorgvuldig

from dataclasses import dataclass, field


@dataclass(kw_only=True, slots=True)
class User:
    id: int
    name: str
    email: str


u = User(id=42, name="Ada", email="ada@x.com")
print(u)
print(hasattr(u, "__dict__"))

try:
    User(42, "Ada", "ada@x.com")
except TypeError as e:
    print("positional rejected" if "positional" in str(e).lower() else "rejected")

try:
    u.extra = "no"
except AttributeError:
    print("attrs locked")


@dataclass
class Mix:
    a: int
    b: int = field(kw_only=True)
    c: int = 0


m = Mix(1, c=3, b=2)
print(m)

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…