В Python доступ к атрибутам объекта регулируется соглашением, основанным на префиксах имен.
_). Считаются внутренней частью класса или модуля. Соглашение предполагает, что такие атрибуты не должны напрямую использоваться извне, хотя технически доступны.
python
__) и не заканчиваются на подчеркивание. Python выполняет "искажение имени" (name mangling): __attribute преобразуется в _ClassName__attribute. Это затрудняет прямой доступ извне, хотя и не делает его полностью невозможным.
python
Это соглашение, а не строгое принуждение (кроме искажения имен). Разработчик сам ответственен за соблюдение этих правил для обеспечения читаемости и поддержки кода.