Встречается на собеседованиях • сегодня
Есть ли инкапсуляция в Python
В Python инкапсуляция реализована через соглашения и механизмы именования, а не через строгие ограничения доступа, как в некоторых других языках.
- Публичные атрибуты – доступны отовсюду (например,
self.value). - Защищённые атрибуты – обозначаются одним подчёркиванием (
_value), но это лишь соглашение, доступ не ограничен. - Приватные атрибуты – два подчёркивания (
__value), интерпретатор искажает имя (_ClassName__value), что затрудняет доступ извне, но не делает его невозможным.
Пример:
python
class Example:
def __init__(self):
self.public = 1 # публичный
self._protected = 2 # защищённый (соглашение)
self.__private = 3 # приватный (name mangling)
obj = Example()
print(obj.public) # 1
print(obj._protected) # 2 (но IDE может предупредить)
print(obj._Example__private) # 3 (доступ через искажённое имя)Python доверяет разработчику и не запрещает доступ, но явно нарушать инкапсуляцию не рекомендуется.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы