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

Python Senior Без компании
Что такое инкапсуляция в Python
Ответы
Инкапсуляция — это принцип ООП, который ограничивает доступ к данным и методам класса, скрывая внутреннюю реализацию. В Python нет строгой инкапсуляции, но есть соглашения: - **Публичные атрибуты** — доступны везде. - **Защищённые (protected)** — с одним подчёркиванием `_attr`. Условное указание, что атрибут не предназначен для внешнего использования. - **Приватные (private)** — с двумя подчёркиваниями `__attr`. Интерпретатор искажает имя (`_ClassName__attr`), затрудняя доступ извне. Пример: ``` class BankAccount: def __init__(self, balance): self.__balance = balance # Приватный атрибут def deposit(self, amount): self.__balance += amount def get_balance(self): # Публичный метод для доступа return self.__balance account = BankAccount(100) print(account.get_balance()) # 100 # print(account.__balance) # Ошибка! AttributeError ``` **Важно:** Python не запрещает доступ к приватным атрибутам (можно через `_BankAccount__balance`), но это нарушает инкапсуляцию.