weranda
@weranda

Зачем нужен приватный метод и аргумент, если доступ к нему все равно можно получить извне?

Приветствую.

Простой пример:
class Akk:

    def __init__(self, name):
        self.__name = name

    def __show_name(self):
        print(self.__name)

a = Akk('John')  
a._Akk__show_name()  # > John
print(a._Akk__name)  # > John
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Соглашения об именовании приватных методов и name mangling - это не про защиту от злонамеренных хакеров, взламывающих ваш код. Всё это для предотвращения непреднамеренно ошибочного использования объектов. В больших системах бывает сложно уследить, что один объект из сотен, в одном из тысяч возможных состояний программы не нарушает инварианты другого объекта. Весь ООП придумывался ради снижения сложности кода.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы