Инкапсуляция для новичка
Инкапсуляция — это идея прятать внутренние данные объекта и давать к ним доступ только через методы. Разберём зачем.
Что это значит
Объект хранит данные внутри и не даёт менять их как попало извне. Вместо прямого доступа предлагаются методы: например, не менять баланс напрямую, а вызывать deposit() и withdraw(). Так объект контролирует своё состояние.
Зачем прятать данные
Если любой код может менять внутренности объекта, легко случайно привести его в неверное состояние (отрицательный баланс, сломанные данные). Методы-посредники проверяют корректность и защищают объект от ошибок.
Подчёркивание в именах
В Python нет жёсткой защиты, но есть договорённость: имя с подчёркиванием в начале (_balance) значит «внутреннее, снаружи не трогать». Это сигнал другим программистам, а не запрет. Инкапсуляция в Python держится на уважении к таким соглашениям.
Частые вопросы
Python реально запрещает доступ? Нет, подчёркивание — соглашение, а не жёсткая защита.
Зачем методы вместо прямого доступа? Чтобы объект проверял данные и оставался в корректном состоянии.
Начать игру бесплатно