Методы Accessor и Mutator в Python
Поскольку рекомендуется хранить внутренние данные объекта private, нам часто требуются методы в интерфейсе класса, чтобы позволить пользователю объектов изменять или получать доступ к внутренне сохраненным данным контролируемым образом.
Метод, определенный внутри класса, может быть либо Accessor, либо методом Mutator. Метод доступа - это функция, которая возвращает копию внутренней переменной или вычисленного значения. Обычная практика - назвать их словом get. Метод мутатора - это функция, которая каким-то образом изменяет значение внутренней переменной данных. Простейшей формой функции мутатора является та, которая устанавливает переменную непосредственно в новое значение. Обычная практика - назвать их словом.
Пример
class MyClass(): def __init__(self): self.__my_attr = 3 def set_my_attr(self,val): self.__my_attr = val def get_my_attr(self): return self.__my_attr obj1 = MyClass() print (obj1.get_my_attr()) obj1.set_my_attr(7) print (obj1.get_my_attr())
В приведенном выше примере,
Методы obj1.get_my_attr() - это методы Accessor, поскольку он не изменяет объект a в каком-либо смысле, а только извлекает соответствующую информацию. Но obj1.set_my_attr (7) является мутаторным методом, поскольку он эффективно изменяет объект на новый.