Zum Hauptinhalt springen
🔒 Vorschaumodus. Die ersten fünfzehn Foundations-Lektionen sind kostenlos; diese hier ist Pro. Starte einen 7-Tage-Trial, um den Editor, AI-Hinweise und den Rest des Lehrplans freizuschalten. Karte erforderlich, jederzeit im Dashboard kündbar.7-Tage-Trial starten →
← KurseSenior Deep-DivesModule 6 · FAANG-2026 deep divesDescriptor lookup order — data vs non-datapredict106 / 161
+150 XP
Aufgabe
📝 **Aufgabe:** Die genaue Ausgabe vorhersagen. Zwei Deskriptoren: \`DataDesc\` definiert sowohl \`__get__\` als auch \`__set__\` (Datendeskriptor); \`NonDataDesc\` definiert nur \`__get__\` (Nicht-Daten). Beides sind Klassenattribute für „Holder“. Dann schleicht der Test Werte direkt in das „__dict__“ der Instanz ein – unter Umgehung des Deskriptorprotokolls. Welches gewinnt für „h.d“ und welches für „h.n“? 📋 Implementieren Sie die obige Funktion. Tests laufen automatisch ab. 💡 **Hinweis:** Lesen Sie die Theorie noch einmal, wenn Sie nicht weiterkommen.
Sage die Ausgabe vorher

Lies den Code sorgfältig

class DataDesc:
    def __get__(self, instance, owner):
        print("data:get")
        return 1
    def __set__(self, instance, value):
        print(f"data:set:{value}")


class NonDataDesc:
    def __get__(self, instance, owner):
        print("nondata:get")
        return 2


class Holder:
    d = DataDesc()
    n = NonDataDesc()


h = Holder()
h.__dict__["d"] = "shadow_d"
h.__dict__["n"] = "shadow_n"

print(h.d)
print(h.n)

Was wird das Programm ausgeben? Schreib hier:

💬 Diskussion

Sei der erste — stelle eine Frage oder teile einen Tipp.
Anmelden um an der Diskussion teilzunehmen. Lesen ist kostenlos.
Diskussion wird geladen…