Back to questions
Junior — Middle
54
Каким образом можно получить доступ к защищённым методам в Python?
Answer from AI
sobes.tech AI
В Python защищённые методы и атрибуты обозначаются одним подчёркиванием в начале имени (например, _method). Это соглашение, а не строгий запрет.
Чтобы получить доступ к таким методам, достаточно обратиться к ним напрямую, например:
class MyClass:
def _protected_method(self):
print("Это защищённый метод")
obj = MyClass()
obj._protected_method() # Доступ возможен
Если метод объявлен с двойным подчёркиванием (например, __method), происходит манглирование имени для предотвращения конфликтов в подклассах. Тогда доступ возможен через изменённое имя:
class MyClass:
def __private_method(self):
print("Это приватный метод")
obj = MyClass()
obj._MyClass__private_method() # Доступ через манглированное имя
Таким образом, защищённые методы доступны напрямую, а приватные — через манглированное имя.