Python предоставляет мощные инструменты для работы с объектами и памятью, но их использование требует понимания тонкостей. В этой статье разберем, как переменные ссылаются на объекты, чем отличается сравнение через == и is, как работают in-place изменения и зачем нужны слабые ссылки. В Python переменные хранят ссылки на объекты в памяти. Если несколько переменных ссылаются на один и тот же объект, их называют shared references (общими ссылками). Это особенно важно для изменяемых (mutable) типов. Пример: a = [1, 2, 3] b = a # b ссылается на тот же объект, что и a b.append(4) print(a) # [1, 2, 3, 4] — изменение через b затронуло a! Неизменяемые (immutable) типы (например, числа, строки) защищены от случайных изменений: x = 10 y = x # y ссылается на тот же объект 10 y += 5 # Создается новый объект 15, y теперь ссылается на него print(x) # 10 — x не изменился Важно: - Присваивание = создает новую ссылку, а не копию объекта. - Для создания копий изменяемых объектов используйте: - copy
Ссылки, сравнение объектов и управление памятью в Python: Shared References, == vs is, In-place изменения, Weak References
18 марта 202518 мар 2025
14
3 мин