Aller au contenu principal
🔒 Mode aperçu. Les quinze premières leçons Foundations sont gratuites ; celle-ci est Pro. Démarrez un trial de 7 jours pour débloquer l'éditeur, les conseils AI et le reste du programme. Carte requise, annulez à tout moment dans Dashboard.Démarrer le trial de 7 jours →
← CoursSenior Deep-DivesModule 5 · Révision de l'architecture et du code__slots__ analyse approfondiepredict69 / 161
+100 XP
Tâche
📝 **Question :** Prédisez le résultat exact. \`Compact\` utilise \`__slots__ = ("x", "y")\` — pas de \`__dict__\`. \`Hybrid(Compact)\` ajoute \`__slots__ = ("__dict__",)\` — réactive explicitement le dict par instance sur la sous-classe. Trois questions : (1) \`c.z = 99\` peut-il réussir ? (2) \`h.z = 99\` peut-il réussir ? (3) Chaque instance a-t-elle un \`__dict__\` ? 📋 Choisissez la bonne réponse. 💡 **Indice :** Relisez la théorie ci-dessus en cas de doute.
Prédis la sortie

Lis le code attentivement

class Compact:
    __slots__ = ("x", "y")


class Hybrid(Compact):
    __slots__ = ("__dict__",)


c = Compact()
c.x = 1
c.y = 2
try:
    c.z = 99
    print("compact:z_ok")
except AttributeError:
    print("compact:no_z")

h = Hybrid()
h.x = 1
h.y = 2
h.z = 99
print(f"hybrid:{h.x},{h.y},{h.z}")
print(hasattr(c, "__dict__"))
print(hasattr(h, "__dict__"))

Que va afficher le programme ? Écris ici :

💬 Discussion

Soyez le premier à poser une question ou partager une astuce.
Connectez-vous pour rejoindre la discussion. La lecture est gratuite.
Chargement de la discussion…