Как работают private методы
Python
Middle
Без компании
Как работают private методы
Ответы
В Python нет строгой инкапсуляции, но приватные методы обозначаются двойным подчёркиванием `__` в начале имени. Это вызывает name mangling (искажение имени) — интерпретатор добавляет `_ИмяКласса` перед именем метода.
Пример:
```
class MyClass:
def __public(self):
print("Это приватный метод")
def call_private(self):
self.__public()
obj = MyClass()
obj.call_private() # Работает
obj.__public() # Ошибка: AttributeError
```
Фактически метод доступен как `_MyClass__public`, но напрямую по `__public` — нет. Это соглашение, а не строгая защита. Для "защищённых" методов используют одинарное подчёркивание `_method` — это лишь договорённость.