То, на что вы ссылаетесь, называется установщиками. Сеттеры по сути являются методами, используемыми для установки значений переменных экземпляра объекта. Чтобы добиться этого с помощью декораторов, необходимо соблюдать определенные правила:
- Имя метода должно совпадать с переменной.
- Декоратор
@name.setter
должен предшествовать его определению.
Вы можете легко реализовать установщик в созданном вами классе:
class foo:
def __init__(self):
self.results = {}
@results.setter
def results(self,dictIn):
self.results = dictIn
Как видите, отсутствие создания установщика в приведенном выше примере не сильно изменилось бы, но в некоторых случаях вы можете захотеть изменить поведение при изменении значения элемента данных. Это в основном использование сеттеров.