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 2 · Composants internes et performances de CPythonOptimisation approfondie des machines à souspredict18 / 161
+100 XP
Tâche
📝 **Question :** Prédisez le résultat exact. \`Point\` déclare \`__slots__ = ("x", "y")\`. \`Tagged\` sous-classe \`Point\` mais ne déclare PAS son propre \`__slots__\`. Trois questions : (1) L'instance \`Point\` a-t-elle un \`__dict__\` ? (2) L'instance \`Tagged\` en a-t-elle une ? (3) Pouvez-vous définir \`p.z = 99\` et \`t.z = 99\` ? 📋 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 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}")

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…