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

Согласен ли с утверждением, что инкапсуляция - это строгое и четкое разделение контрактных обязаностей от деталей реализации, которые связаны с данными обязаностями

Да, это верное определение инкапсуляции. В Python инкапсуляция достигается через соглашения (например, _ и __ префиксы) и property декораторы. Основная цель — скрыть внутреннюю реализацию, предоставив четкий интерфейс.

Пример:

python
class BankAccount:
    def __init__(self, balance):
        self._balance = balance  # защищенный атрибут
text
@property
def balance(self):
    return self._balance

@balance.setter
def balance(self, value):
    if value >= 0:
        self._balance = value
    else:
        raise ValueError("Balance cannot be negative")

account = BankAccount(100)
print(account.balance) # 100 - доступ через интерфейс
account.balance = 200 # изменение через setter

text

Здесь `_balance` — деталь реализации, а `balance` — контрактный интерфейс.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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