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

Будет ли класс иммутабельным (неизменяемым), если в нем находится атрибут

Если класс содержит атрибут, это не делает его автоматически иммутабельным. Иммутабельность зависит от возможности изменения состояния объекта после создания.

Пример иммутабельного класса:

python
class ImmutablePoint:
    __slots__ = ('x', 'y')  # Запрещает динамическое добавление атрибутов
    
    def __init__(self, x, y):
        super().__setattr__('x', x)  # Обход __setattr__
        super().__setattr__('y', y)
    
    def __setattr__(self, *args):
        raise AttributeError("ImmutablePoint is immutable")

Пример изменяемого класса:

python
class MutablePoint:
    def __init__(self, x, y):
        self.x = x  # Атрибуты можно менять
        self.y = y

Иммутабельность достигается через запрет изменения атрибутов (например, переопределяя __setattr__ или используя @property).

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

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

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

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