Встречается на собеседованиях • сегодня
Есть ли доступ к приватным методам и переменным в Python
В Python нет строгих приватных методов и переменных, как в некоторых других языках. Однако есть соглашение и механизм для их обозначения:
- Соглашение: если имя начинается с одного подчеркивания (например,
_var), это сигнализирует, что атрибут предназначен для внутреннего использования (protected). Доступ к нему возможен, но не рекомендуется.
- Name Mangling: если имя начинается с двух подчеркиваний (например,
__var), Python модифицирует его, добавляя имя класса (_ClassName__var). Это усложняет доступ, но не делает его невозможным.
Пример:
python
class MyClass:
def __init__(self):
self._protected = 123
self.__private = 456
obj = MyClass()
print(obj._protected) # 123 (доступ есть, но не рекомендуется)
print(obj._MyClass__private) # 456 (доступ через name mangling)Вывод: технически доступ есть всегда, но соглашения и name mangling помогают избежать случайного использования "приватных" членов.

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