Vai al contenuto principale
🔒 Modalità anteprima. Le prime quindici lezioni di Foundations sono gratuite; questa è Pro. Avvia un trial di 7 giorni per sbloccare l'editor, i suggerimenti AI e il resto del programma. Carta richiesta, disdici in qualsiasi momento dalla Dashboard.Avvia trial di 7 giorni →
← CorsiSenior Deep-DivesModulo 2 · Componenti interni e prestazioni di CPythonOttimizzazione degli slot in profonditàpredict18 / 161
+100 XP
Compito
📝 **Domanda:** Prevedere l'output esatto. \`Point\` dichiara \`__slots__ = ("x", "y")\`. \`Tagged\` sottoclassi \`Point\` ma NON dichiara il proprio \`__slots__\`. Tre domande: (1) L'istanza \`Point\` ha un \`__dict__\`? (2) L'istanza \`Tagged\` ne ha uno? (3) Puoi impostare \`p.z = 99\` e \`t.z = 99\`? 📋 Scegli la risposta giusta. 💡 **Suggerimento:** Rileggi la teoria sopra se non sei sicuro.
Predici output

Leggi il codice attentamente

class Point:
    __slots__ = ("x", "y")
    def __init__(self, x, y):
        self.x = x
        self.y = y


class Tagged(Point):
    pass


p = Point(1, 2)
t = Tagged(3, 4)

print(f"p:{p.x},{p.y}")
print(f"t:{t.x},{t.y}")
print(hasattr(p, "__dict__"))
print(hasattr(t, "__dict__"))

try:
    p.z = 99
    print(f"p.z={p.z}")
except AttributeError:
    print("p:no_z")

t.z = 99
print(f"t.z={t.z}")

Cosa stamperà il programma? Scrivi qui:

💬 Discussione

Sii il primo a fare una domanda o condividere un consiglio.
Accedi per partecipare alla discussione. La lettura è gratuita.
Caricamento discussione…