Встречается на собеседованиях • сегодня
Как в Python реализована инкапсуляция классов
В Python инкапсуляция реализована через соглашения об именовании, а не строгие модификаторы доступа.
- Публичные атрибуты: обычные имена (
var) - Защищённые (protected): одно подчёркивание (
_var). Это соглашение, что атрибут не предназначен для внешнего использования, но доступ остаётся. - Приватные (private): два подчёркивания (
__var). Интерпретатор искажает имя (_ClassName__var), что затрудняет доступ извне, но не блокирует полностью.
Пример:
python
class MyClass:
def __init__(self):
self.public = 1 # публичный
self._protected = 2 # защищённый
self.__private = 3 # приватный
obj = MyClass()
print(obj.public) # 1
print(obj._protected) # 2 (но не рекомендуется)
print(obj._MyClass__private) # 3 (обход приватности)Для управления доступом используют декораторы @property, @attr.setter.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы