> Что означает двойное подчеркивание в начале имени метода или атрибута класса в Python? (Python)

Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: ИП Калюков Николай Сергеевич

Стек: Python

> Пример ответа

Двойное подчеркивание в начале имени (например, __method или __attribute) в Python активирует механизм name mangling (искажение имени). Это не делает метод или атрибут строго приватным в смысле других языков (например, Java), а лишь предотвращает случайное переопределение в подклассах. Имя преобразуется в _ClassName__attribute, что затрудняет доступ извне, но не блокирует его полностью (доступ всё ещё возможен через obj._ClassName__attribute).

Основная цель - избежать конфликтов имен при наследовании. Например, если базовый класс определяет __method, а дочерний класс также определяет __method, они не пересекутся, так как будут иметь разные искаженные имена (_BaseClass__method и _DerivedClass__method). Это особенно полезно в больших иерархиях классов или при разработке библиотек, где нужно защитить внутренние детали от случайного переопределения.

Важно: одиночное подчеркивание в начале (_method) - это лишь соглашение, указывающее на "внутреннее" использование, но без какого-либо технического ограничения доступа.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью