Инкапсуляция в Python
Инкапсуляция в Python - это принцип объектно-ориентированного программирования, который позволяет скрыть внутреннюю реализацию объекта от внешнего доступа и защитить его данные.
Один из способов реализации инкапсуляции в Python - это использование специальных методов, таких как методы getter и setter. Методы getter используются для получения значения закрытого атрибута объекта, а методы setter - для установки значения атрибута. Таким образом, доступ к значениям атрибутов класса осуществляется через методы.
Пример кода:
python
class Person:
def __init__(self, name, age):
self._name = name # приватный атрибут
self._age = age
def get_name(self): # метод getter
return self._name
def set_name(self, new_name): # метод setter
self._name = new_name
def get_age(self): # метод getter
return self._age
def set_age(self, new_age): # метод setter
if new_age >= 0: # пример проверки на корректность значения
self._age = new_age
person = Person("John", 25)
print(person.get_name()) # вывод имени через метод getter
person.set_name("Mike") # изменение имени через метод setter
print(person.get_name())
person.set_age(-10) # попытка установки отрицательного значения возраста
print(person.get_age()) # возраст не изменился из-за проверки в методе setter
В данном примере класс Person имеет приватные атрибуты `_name` и `_age`, к которым можно получить доступ только через методы getter и setter. Методы getter (`get_name` и `get_age`) возвращают значения атрибутов, а методы setter (`set_name` и `set_age`) устанавливают значения атрибутов после проверки на корректность. Таким образом, мы можем контролировать доступ к данным объекта и обеспечить их защиту.