Методы 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) является мутаторным методом, поскольку он эффективно изменяет объект на новый.
