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

Если бы не было модификаторов доступа, означало ли это, что инкапсуляции нет в Python

В Python инкапсуляция реализована через соглашения, а не строгие модификаторы доступа. Отсутствие private, protected не означает отсутствие инкапсуляции — она достигается через _ и __ перед именами атрибутов.

  • _var: "защищенный" (convention, не enforced)
  • __var: "приватный" (name mangling, но доступ через _ClassName__var)

Пример:

python
class Test:
    def __init__(self):
        self._protected = 123
        self.__private = 456

obj = Test()
print(obj._protected)  # 123 (но IDE предупредит)
print(obj._Test__private)  # 456 (name mangling)

Вывод: инкапсуляция есть, но она "договорная" и гибкая. Python доверяет разработчику, а не навязывает ограничения.

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

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

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

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