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-DivesModule 6 · FAANG-2026 deep divesDescriptor lookup order — data vs non-datapredict106 / 161
+150 XP
Compito
📝 **Compito:** Prevedere l'output esatto. Due descrittori: \`DataDesc\` definisce sia \`__get__\` AND \`__set__\` (descrittore dati); \`NonDataDesc\` definisce solo \`__get__\` (non dati). Entrambi sono attributi di classe su \`Holder\`. Quindi il test inserisce i valori direttamente nel \`__dict__\` dell'istanza, ignorando il protocollo del descrittore. Quale vince per \`h.d\` e quale per \`h.n\`? 📋 Implementa la funzione sopra. I test vengono eseguiti automaticamente. 💡 **Suggerimento:** Rileggi la teoria se rimani bloccato.
Predici output

Leggi il codice attentamente

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)

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…