Back to questions
Junior — Middle
76
Можно ли обратиться к приватному методу внутри класса в Python извне его определения?
Answer from AI
sobes.tech AI
В Python нет строгой приватности методов, но есть соглашение: методы, начинающиеся с двойного подчеркивания (__method), считаются приватными и подвергаются манглингу имен (name mangling).
Это значит, что к такому методу нельзя обратиться напрямую по имени, но можно получить доступ, используя изменённое имя.
Пример:
class MyClass:
def __private_method(self):
print("Это приватный метод")
obj = MyClass()
# Прямой вызов вызовет ошибку:
# obj.__private_method() # AttributeError
# Но можно обратиться так:
obj._MyClass__private_method() # Выведет: Это приватный метод
Таким образом, технически обратиться можно, но это не рекомендуется, так как нарушает инкапсуляцию.