Junior — Middle
121
Peut-on accéder à une méthode privée à l'intérieur d'une classe en Python depuis l'extérieur de sa définition?
Réponse de l'IA
sobes.tech IA
В Python нет строгой приватности методов, но есть соглашение: методы, начинающиеся с двойного подчеркивания (__method), считаются приватными и подвергаются манглингу имен (name mangling).
Это значит, что к такому методу нельзя обратиться напрямую по имени, но можно получить доступ, используя изменённое имя.
Пример:
class MyClass:
def __private_method(self):
print("Это приватный метод")
obj = MyClass()
# Прямой вызов вызовет ошибку:
# obj.__private_method() # AttributeError
# Но можно обратиться так:
obj._MyClass__private_method() # Выведет: Это приватный метод
Таким образом, технически обратиться можно, но это не рекомендуется, так как нарушает инкапсуляцию.