Sobes.tech
Назад к вопросам
Junior — Middle
58

Каким образом в Python объявляются и используются приватные методы внутри классов?

Ответ от нейросети

sobes.tech AI

В Python приватные методы внутри классов объявляются с помощью двойного подчеркивания в начале имени метода, например, __my_private_method. Это вызывает механизм name mangling — имя метода изменяется интерпретатором, чтобы затруднить доступ к нему извне класса.

Пример:

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

    def public_method(self):
        self.__private_method()

obj = MyClass()
obj.public_method()  # Работает и вызывает приватный метод

# obj.__private_method()  # Ошибка: AttributeError

# Но можно обратиться так (не рекомендуется):
obj._MyClass__private_method()

Важно понимать, что в Python нет настоящей приватности, а двойное подчеркивание — лишь соглашение и механизм для предотвращения случайного доступа. Для обозначения методов, которые не предназначены для использования вне класса, также часто используют одинарное подчеркивание _method — это просто соглашение, без name mangling.