Встречается на собеседованиях • сегодня
Как сделать неизменяемым собственный класс в Python
Чтобы сделать класс неизменяемым, нужно переопределить методы __setattr__ и __delattr__, запрещающие изменение атрибутов после создания объекта. Также можно использовать __slots__ для фиксированного набора атрибутов.
Пример:
python
class Immutable:
__slots__ = ('x', 'y') # Фиксируем допустимые атрибуты
def __init__(self, x, y):
super().__setattr__('x', x)
super().__setattr__('y', y)
def __setattr__(self, name, value):
raise AttributeError(f"Can't modify {name} - object is immutable")
def __delattr__(self, name):
raise AttributeError(f"Can't delete {name} - object is immutable")Ключевые моменты:
__slots__ограничивает набор возможных атрибутов__setattr__и__delattr__вызывают исключение при попытке изменения- В
__init__используетсяsuper().__setattr__для обхода ограничений

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