Изменяемые и неизменяемые объекты в Python

Перевод статьи Mutable vs Immutable Objects in Python.

Все значения в Python это объекты. Объекты делятся на изменяемые и неизменяемые.

Python, схема объектов

Каждая переменная ссылается на экземпляр объекта. При создании, объекту присваивается уникальный идентификатор (object id) и тип объекта. Тип объекта не меняется после создания, но может изменится состояние объекта. Изменяемые объекты меняют своё состояние после создания, а неизменяемые сохраняются в том виде в котором были созданы.

Встроенные неизменяемые типы: int, float, bool, str, tuple, unicode. Встроенные изменяемые типы list, set, dict. Пользовательские классы обычно изменяемы. Для имитирования неизменяемости переопределите методы изменения и удаления значений чтобы они возвращали исключение.

Python. таблица изменяемых и неизменяемых объектов

Чтобы узнать ссылается ли переменная на изменяемый или неизменяемый рассмотрим подробнее функции id() и type().

Читать далее Изменяемые и неизменяемые объекты в Python