Back to questions
Junior — Middle
57
Каким образом в Python объявляются и используются приватные методы внутри классов?
Answer from AI
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.