Junior — Middle
100
È possibile accedere a un metodo privato all'interno di una classe in Python dall'esterno della sua definizione?
Risposta dell'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() # Выведет: Это приватный метод
Таким образом, технически обратиться можно, но это не рекомендуется, так как нарушает инкапсуляцию.