Към основното съдържание
🔒 Режим за преглед. Първите петнадесет урока на Foundations са безплатни; този е Pro. Стартирайте 7-дневен trial, за да отключите редактора, AI подсказките и останалата част от курса. Изисква се карта, отменете по всяко време в Dashboard.Стартирай 7-дневен trial →
← КурсовеSenior Deep-DivesМодул 5 · Преглед на архитектурата и кода__slots__ дълбоко гмурканеpredict69 / 161
+100 XP
Задача
📝 **Въпрос:** Предскажете точния резултат. \`Compact\` използва \`__slots__ = ("x", "y")\` — не \`__dict__\`. \`Hybrid(Compact)\` добавя \`__slots__ = ("__dict__",)\` — изрично активира отново dict за екземпляр в подкласа. Три въпроса: (1) Може ли \`c.z = 99\` да успее? (2) Може ли \`h.z = 99\` да успее? (3) Всеки екземпляр има ли \`__dict__\`? 📋 Изберете правилния отговор. 💡 **Съвет:** Прочетете отново теорията по-горе, ако не сте сигурни.
Предскажи изхода

Прочети кода внимателно

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__"))

Какво ще изведе програмата? Напиши тук:

💬 Дискусия

Бъди първи — задай въпрос или сподели съвет.
Влез за да се присъединиш към дискусията. Четенето е безплатно.
Зареждане на дискусията…