Дескрипторы Python: почему значение разделяется между экземплярами

Выберите ответ и проверьте себя на странице.

Другие упражнения по этой теме: Дескрипторы Python: задачи на get, set и set_name.

Посмотрите на код:

class Validated:
    def __get__(self, instance, owner=None):
        return self.val if instance is not None else self

    def __set__(self, instance, val):
        self.val = val


class Model:
    x = Validated()


m1 = Model()
m1.x = 10
m2 = Model()
m2.x = 20
print(m1.x)

Программа вывела 20 вместо 10. В чём причина такого поведения?

Выберите один вариант
Без регистрации · результат не сохраняется

Связанные задачи