В python нет способа ограничить или предоставить доступ к атрибуту. По умолчанию вы можете получить доступ к атрибуту вне объекта, в отличие от Java, где вы можете получить доступ только к атрибутам, которые подписаны как общедоступные.
Таким образом, вы можете напрямую получить атрибут name в вашем экземпляре, написав person1.name
, где person1 - это класс класса Person, однако это плохая практика в объектно-ориентированном программировании ( OOP ).
Альтернативный способ - создать две функции: установщик и получатель, которые устанавливают и возвращают соответственно значение заинтересованного атрибута. В вашем случае это будет:
def setName(self,name):
self.name = name
def getName(self):
return self.name
Таким образом, вы соблюдаете некоторые принципы инкапсуляции данных ООП, и когда вам нужно увидеть, как имя просто вызывает метод в экземпляре person1.getName()
.
Примечание:
Одним из преимуществ этого подхода является то, что теперь вы можете проверить, какое значение может принимать ваш экземпляр. Для класса Person и примера установка числа не имеет смысла, поэтому проверка, является ли аргумент name действительно строкой, перед обновлением будет хорошей.
Подробнее о личных атрибутах в python и здесь .
Для получения и установки смотрите эту ссылку , где вы также можете узнать о Свойствах концепции.