Дескрипторы 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. В чём причина такого поведения?
Без регистрации · результат не сохраняется
Связанные задачи
- Дескриптор и dict в Python: кто имеет приоритет при чтении
- Дескрипторы Python: валидация и сброс кэша зависимых свойств
- Дескрипторы Python: значения по умолчанию и удаление переопределений
- Дескриптор Python: однократная запись и setname
- Дескриптор Python: проверка связанных полей low и high
- Дескриптор Python без get: журнал присваиваний в set
