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

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

Инкапсуляция — это принцип ООП, который ограничивает доступ к данным и методам класса, скрывая внутреннюю реализацию. В Python нет строгой инкапсуляции, но есть соглашения:

  1. Публичные атрибуты — доступны везде.
  2. Защищённые (protected) — с одним подчёркиванием _attr. Условное указание, что атрибут не предназначен для внешнего использования.
  3. Приватные (private) — с двумя подчёркиваниями __attr. Интерпретатор искажает имя (_ClassName__attr), затрудняя доступ извне.

Пример:

python
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), но это нарушает инкапсуляцию.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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