Встречается на 1% собеседований по Python
Есть ли инкапсуляция в 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
интервью вопросы и ответы