Встречается на собеседованиях • сегодня

Зачем нужна инкапсуляцию

Инкапсуляция в Python позволяет скрыть внутреннюю реализацию класса, предоставляя доступ только к необходимым методам и атрибутам. Это помогает:

  1. Защитить данные от нежелательных изменений
  2. Упростить использование класса (пользователь работает только с публичным интерфейсом)
  3. Облегчить поддержку кода (можно менять внутреннюю реализацию, не ломая внешний код)

Пример:

python
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

account = BankAccount(100)
account.deposit(50)
print(account.get_balance())  # 150
# account._balance = -100  # возможно, но не рекомендуется

В Python инкапсуляция реализуется через соглашения:

  • _var - защищенный атрибут (доступ есть, но это "неприлично")
  • __var - приватный атрибут (Python делает name mangling)
  • Без подчеркиваний - публичный интерфейс
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы