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

Расскажи про три типа инкапсуляции в Python

В Python инкапсуляция реализуется через соглашения об именовании и механизмы доступа.

  1. Public – атрибуты доступны везде. По умолчанию все атрибуты публичные.
    python
    class Example:
        def __init__(self):
            self.public_attr = 10
    obj = Example()
    print(obj.public_attr)  # 10
  1. Protected – атрибуты с одним подчёркиванием _. Условно защищённые, доступны, но считаются внутренними.

    python
    class Example:
        def __init__(self):
            self._protected_attr = 20
    obj = Example()
    print(obj._protected_attr)  # 20 (но не рекомендуется)
  2. Private – атрибуты с двумя подчёркиваниями __. Интерпретатор искажает имя (_ClassName__attr), предотвращая прямой доступ.

    python
    class Example:
        def __init__(self):
            self.__private_attr = 30
    obj = Example()
    print(obj.__private_attr)  # Ошибка! Доступ через obj._Example__private_attr

Важно: Python не запрещает доступ, а лишь усложняет его, следуя принципу "Мы все взрослые здесь".

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

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

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

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