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

В чем разница между объявлениями private и protected методами в Python

В Python нет строгой инкапсуляции, но есть соглашения для обозначения приватных и защищённых атрибутов:

  • _protected (одно подчёркивание) – условно защищённый атрибут. Доступен извне, но считается внутренней реализацией класса.
  • __private (два подчёркивания) – имя модифицируется (_ClassName__private) для предотвращения случайного переопределения в подклассах.

Пример:

python
class MyClass:
    def __init__(self):
        self._protected = 10
        self.__private = 20

obj = MyClass()
print(obj._protected)  # Работает (10)
print(obj.__private)   # Ошибка! Доступ через obj._MyClass__private

Важно: Это лишь соглашение, а не строгая защита. Python доверяет разработчику.

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

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

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

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