Sari la conținutul principal
🔒 Mod previzualizare. Primele cincisprezece lecții Foundations sunt gratuite; aceasta este Pro. Pornește un trial de 7 zile pentru a debloca editorul, sugestiile AI și restul programului. Card necesar, anulează oricând în Dashboard.Pornește trial de 7 zile →
← CursuriSenior Deep-DivesModule 6 · FAANG-2026 deep divesDescriptor lookup order — data vs non-datapredict106 / 161
+150 XP
Sarcină
📝 **Sarcina:** Preziceți rezultatul exact. Doi descriptori: \`DataDesc\` definește atât \`__get__\` ȘI \`__set__\` (descriptor de date); \`NonDataDesc\` definește numai \`__get__\` (non-date). Ambele sunt atribute de clasă pe \`Holder\`. Apoi testul introduce valorile direct în \`__dict__\` al instanței — ocolind protocolul descriptor. Care câștigă pentru \`h.d\` și care pentru \`h.n\`? 📋 Implementați funcția de mai sus. Testele rulează automat. 💡 **Sugestie:** Recitiți teoria dacă rămâneți blocat.
Prezice ieșirea

Citește codul cu atenție

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)

Ce va afișa programul? Scrie aici:

💬 Discuție

Fii primul — pune o întrebare sau împărtășește un sfat.
Conectează-te pentru a te alătura discuției. Citirea este gratuită.
Se încarcă discuția…