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

Как скрыть методы и переменные класса в Python

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

  • Одно подчеркивание _variable – условно приватный атрибут (по соглашению, но доступен извне).
  • Два подчеркивания __variable – вызывает name mangling (интерпретатор переименует атрибут в _ClassName__variable).

Пример:

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

obj = MyClass()
print(obj._protected)  # Доступно, но не рекомендуется
print(obj.__private)   # Ошибка! Доступ через obj._MyClass__private

Важно: Это не запрещает доступ, а лишь усложняет его. Для настоящей защиты нужно использовать свойства (@property) или документально оговаривать API.

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

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

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

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