Что такое инкапсуляция

Python Middle Без компании
Что такое инкапсуляция
Ответы
**Инкапсуляция** — это принцип ООП, который **объединяет данные (поля) и методы (функции) для работы с этими данными внутри одного объекта** и **скрывает внутреннюю реализацию объекта от внешнего вмешательства (как таковой защиты от изменения не существует, инкапсуляция лишь показывает, что "этот код трогать не надо, тут все работает")**. Это реализуется через механизм управления доступом: · **Public (**`public_var`**):** Доступны откуда угодно. · **Protected (**`_protected_var`**):** Сигнал для разработчика, что переменная предназначена для внутреннего использования в классе и его подклассах. Python не запрещает доступ, но это соглашение. · **Private (**`__private_var`**):** Интерпретатор искажает имя переменной (`_MyClass__private_var`), делая сложным (но не невозможным) доступ к ней извне. Это предотвращает случайное переопределение внутренних атрибутов. **Цель:** Управление сложностью, повышение надежности (предотвращение некорректного изменения состояния объекта) и обеспечение согласованности данных. *Пример:* ``` class BankAccount: def __init__(self, balance): self.__balance = balance # Приватный атрибут def deposit(self, amount): # Публичный метод для изменения баланса if amount > 0: self.__balance += amount def get_balance(self): # Публичный метод для получения баланса return self.__balance # Снаружи нельзя напрямую изменить __balance, только через методы account = BankAccount(100) account.deposit(50) print(account.get_balance()) # 150 # account.__balance = 1000 # Не сработает, это создаст новый атрибут, а не изменит приватный ```