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

Как реализовать приватный атрибут в классе

В Python приватные атрибуты создаются с помощью двойного подчёркивания __ перед именем атрибута. Это вызывает механизм name mangling (искажения имён), который добавляет _ИмяКласса к имени атрибута.

Пример:

python
class MyClass:
    def __init__(self):
        self.__private_attr = "I'm private"

obj = MyClass()
print(obj.__private_attr)  # Вызовет AttributeError
print(obj._MyClass__private_attr)  # Работает (но так делать не стоит)

Важные моменты:

  1. Это не настоящая приватность, а лишь соглашение
  2. Доступ возможен через _ИмяКласса__атрибут, но так делать не рекомендуется
  3. Одиночное подчёркивание _attr - соглашение для "protected" атрибутов
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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