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

Как работают private методы

В Python нет строгой инкапсуляции, но приватные методы обозначаются двойным подчёркиванием __ в начале имени. Это вызывает name mangling (искажение имени) — интерпретатор добавляет _ИмяКласса перед именем метода.

Пример:

python
class MyClass:
    def __public(self):
        print("Это приватный метод")

    def call_private(self):
        self.__public()

obj = MyClass()
obj.call_private()  # Работает
obj.__public()      # Ошибка: AttributeError

Фактически метод доступен как _MyClass__public, но напрямую по __public — нет. Это соглашение, а не строгая защита. Для "защищённых" методов используют одинарное подчёркивание _method — это лишь договорённость.

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

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

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

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