Есть ли в Python приватные переменные? Как можно "спрятать" атрибут?
Уровень: Middle
Ответ
Полностью приватных, как в некоторых языках, нет – любой атрибут можно получить извне при знании названия. По соглашению, атрибуты, начинающиеся с `_`, считаются “не для внешнего использования”. Python также поддерживает механизм name mangling: имена, начинающиеся с __ и не оканчивающиеся __, внутри класса преобразуются (префиксуются именем класса), что затрудняет доступ извне. Это служит для защиты от случайного конфликта имен в наследниках, но не делает атрибут полностью недоступным.