Встречается на собеседованиях • сегодня
Согласен ли с утверждением, что инкапсуляция - это строгое и четкое разделение контрактных обязаностей от деталей реализации, которые связаны с данными обязаностями
Да, это верное определение инкапсуляции. В 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` — контрактный интерфейс.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы