Встречается на собеседованиях • сегодня

В чем разница между _ и __

В Python символы _ и __ используются для обозначения приватности атрибутов и методов, но с разной степенью строгости:

  1. Одиночное подчеркивание (_)
    • Условно приватный атрибут/метод (соглашение, а не строгая защита).
    • Не импортируется при from module import *.
    • Пример:
      python
      class MyClass:
          def _internal_method(self):
              print("Это внутренний метод")
  1. Двойное подчеркивание (__)
    • Запускает механизм name mangling (искажение имени), чтобы избежать конфликтов в подклассах.
    • Имя преобразуется в _ИмяКласса__атрибут.
    • Пример:
      python
      class MyClass:
          def __private_method(self):
              print("Это приватный метод")
      Вызов obj.__private_method() вызовет ошибку, но доступ возможен через obj._MyClass__private_method().

Итог: _ — соглашение для "внутреннего" использования, __ — техническая защита от переопределения.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы