Sobes.tech
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()  # Доступ через манглированное имя

Таким образом, защищённые методы доступны напрямую, а приватные — через манглированное имя.