Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад

Какая роль у методов, имён атрибутов и переменных, начинающихся с двух подчёркиваний?

Этот вопрос проверяет понимание механизма name mangling (имя-преобразование) в Python и различие между "обычными" двойными подчёркиваниями и "магическими" методами __init__, __str__ и т.п.

Короткий ответ

Имена, начинающиеся с двух подчёркиваний и не заканчивающиеся двумя подчёркиваниями (__name) в классах, подвергаются механизму name mangling: интерпретатор переписывает имя в _ClassName__name. Это помогает избежать конфликтов имён в иерархии наследования и служит более сильной формой инкапсуляции, чем одинарный _. Доступ к таким атрибутам возможен, но их труднее случайно переопределить или использовать. Отдельно есть "магические" методы с двойными подчёркиваниями по обе стороны (__init__, __len__), которые не мэнглятся и используются самим Python для реализации протоколов и операторов.

Длинный ответ

Зарегистрироваться

Развернутый ответ доступен только зарегистрированным пользователям.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • Python

    Python

Ключевые слова

#private

#attribute

#encapsulation

Подпишись на Python Developer в телеграм