Sobes.tech
Junior — Middle
68

Можете ли објаснити шта је објекат са неизменљивим својствима у Python-у и како он ради?

Компаније где су питане
AstonAston

Одговор од АИ

sobes.tech АИ

В 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  # Ошибка: нельзя изменить свойство

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