Какие знаешь теории инкапсуляции
Python
Middle
Aston
Какие знаешь теории инкапсуляции
Ответы
В Python инкапсуляция реализуется через соглашения об именовании и механизмы доступа. Основные подходы:
- **Публичные атрибуты** - обычные переменные (без подчеркиваний)
- **Защищенные атрибуты** - с одним подчеркиванием `_var` (соглашение, но доступ остается)
- **Приватные атрибуты** - с двумя подчеркиваниями `__var` (name mangling)
Пример:
```
class BankAccount:
def __init__(self, balance):
self.__balance = balance # приватный атрибут
def get_balance(self): # публичный метод доступа
return self.__balance
def _validate_amount(self, amount): # защищенный метод
return amount > 0
```
Важные нюансы:
- Приватные атрибуты не полностью скрыты (доступ через `_ClassName__var`)
- Для управления доступом используют property/decorators
- Python доверяет разработчику (соглашение важнее строгой инкапсуляции)
Инкапсуляция в Python - больше про интерфейс и соглашения, чем про жесткое ограничение доступа.