Check

Модель памяти и изменяемость объектов

Python Senior Яндекс
Объясните разницу между изменяемыми и неизменяемыми объектами в Python и как это влияет на передачу аргументов в функции.
Ответы
Mutable vs immutable и аргументы
Неизменяемые типы (int, float, str, tuple, frozenset) нельзя изменить «на месте» — любые операции возвращают новый объект. Изменяемые типы (list, dict, set, большинство пользовательских объектов) можно модифицировать in-place. В Python аргументы передаются по ссылке на объект («call by object reference»). Для неизменяемых типов попытка «изменить» внутри функции создаёт новый объект и не влияет на оригинал. Для изменяемых типов модификации (append, update) затрагивают исходный объект: ```python def add_item(lst): lst.append(42) items = [] add_item(items) print(items) # [42] ```