Перейти к основному содержимому
🔒 Режим превью. Первые 15 уроков Foundations — бесплатные; этот — Pro. Запусти 7-дневный trial чтобы открыть редактор, AI-подсказки и остальной курс. Нужна карта, отмена в Dashboard в любой момент.Начать 7-дневный trial →
← КурсыSenior Deep-DivesМодуль 1 · Внутренние механизмы параллелизма и асинхронностиДескрипторыpredict6 / 161
+100 XP
Задание
📝 **Задание:** Предскажите точный результат. Дескриптор \`Tracker\` печатается при связывании/получении/установке. Три вещи, о которых следует подумать: (1) Когда запускается \`__set_name__\`? (2) Проходит ли \`b.x = 10\` через \`__set__\`? (3) Когда запускается \`total = b.x + b.y\`, что вызывает огонь и в каком порядке? 📋 Реализуйте функцию выше. Тесты запускаются автоматически. 💡 **Подсказка:** Если вы застряли, перечитайте теорию.
Предскажи вывод

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

class Tracker:
    def __set_name__(self, owner, name):
        self.name = name
        print(f"bind:{name}")
    def __get__(self, instance, owner):
        if instance is None:
            return self
        print(f"get:{self.name}")
        return instance.__dict__.get(self.name, 0)
    def __set__(self, instance, value):
        print(f"set:{self.name}={value}")
        instance.__dict__[self.name] = value


class Box:
    x = Tracker()
    y = Tracker()


b = Box()
b.x = 10
b.y = 5
total = b.x + b.y
print(total)

Что выведет программа? Напиши здесь:

💬 Обсуждение

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