Sobes.tech
Back to questions
Junior — Middle
48

Можете объяснить, что такое объект с неизменяемыми свойствами в Python и как он работает?

Companies where asked
AstonAston

Answer from AI

sobes.tech AI

В Python объект с неизменяемыми (immutable) свойствами — это объект, у которого после создания нельзя изменить значения его атрибутов. Такие объекты обеспечивают безопасность данных и предсказуемость поведения, так как их состояние не меняется.

Примером неизменяемых объектов в Python являются кортежи (tuple), строки (str), числа (int, float) и т.д. Если нужно создать собственный класс с неизменяемыми свойствами, можно использовать @property без сеттера или namedtuple из модуля collections.

Пример с использованием @property:

class ImmutablePoint:
    def __init__(self, x, y):
        self._x = x
        self._y = y

    @property
    def x(self):
        return self._x

    @property
    def y(self):
        return self._y

p = ImmutablePoint(1, 2)
print(p.x, p.y)  # 1 2
# p.x = 5  # Ошибка: нельзя изменить свойство

Таким образом, объект с неизменяемыми свойствами гарантирует, что после создания его состояние не изменится.