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

В чем разница между private и protected методами

В Python нет строгой приватности, но есть соглашения:

Protected (один подчерк _method) — метод предназначен для внутреннего использования в классе и его наследниках. Доступ извне возможен, но не рекомендуется.

Private (два подчерка __method) — более строгое ограничение. Интерпретатор переименовывает метод (_ClassName__method), чтобы затруднить доступ извне. Используется, когда нужно избежать случайного переопределения в дочерних классах.

Пример:

python
class MyClass:
    def _protected(self):
        print("Protected method")
    
    def __private(self):
        print("Private method")

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

Важно: это лишь соглашение, Python доверяет разработчику. Для настоящей инкапсуляции используют свойства (@property) или документацию.

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

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

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

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