Встречается на собеседованиях • сегодня
Как в Python защитить объект от изменения
В Python можно защитить объект от изменения несколькими способами:
- Использование кортежей - они неизменяемы:
python
immutable_obj = (1, 2, 3)- Заморозка множества с помощью
frozenset:
python
frozen_set = frozenset([1, 2, 3])- Декоратор
@propertyдля контроля доступа к атрибутам класса:
python
class Protected:
def __init__(self):
self._value = 42
@property
def value(self):
return self._value- Переопределение
__setattr__для полного запрета изменений:
python
class Immutable:
def __setattr__(self, name, value):
raise AttributeError("Объект неизменяем")Для словарей можно использовать types.MappingProxyType:
python
from types import MappingProxyType
d = {'a': 1}
protected_dict = MappingProxyType(d)Важно: Python не имеет строгой неизменяемости - при желании атрибуты можно изменить через __dict__ или другие хаки.

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