Веб-версияОткрыть в Telegram

Пост🤔 Почему Python иногда «течёт» по памяти — и при чём тут weakref

25 декабря 2025
P
Python for Devs
Ссылка
нажмите — покажем
🤔 Почему Python иногда «течёт» по памяти — и при чём тут weakref В Python управление памятью в основном держится на подсчёте ссылок: объект живёт, пока на него есть хотя бы одна сильная ссылка. В большинстве случаев это работает прозрачно, но есть коварные сценарии — циклические ссылки, кэши и списки подписчиков — где объекты начинают жить дольше, чем нужно. Да, в CPython есть GC, который умеет разрывать циклы. Но он запускается не сразу, работает не бесплатно и не спасает от логических утечек, когда вы сами «держите» объект через кэш или реестр. Здесь на сцену выходят слабые ссылки (weakref). Они позволяют ссылаться на объект, не продлевая его жизнь. Как только пропадают сильные ссылки — объект удаляется, даже если на него кто-то «смотрит» через weakref. На практике это даёт несколько очень полезных паттернов: — автоочищающиеся кэши через WeakValueDictionary — реестры и singleton-подобные структуры, которые не держат объекты насильно — списки подписчиков (`WeakSet`), где не нужно вручную отписывать «умершие» объекты — аккуратную работу с долгоживущими менеджерами и короткоживущими сущностями Отдельный бонус — callbacks у weakref: можно повесить логику очистки, которая сработает ровно в момент сборки объекта. 📚 Подробнее в нашей новой статье на Хабре. @python_for_devs
8 · 1.3K ·

Рядом в ленте

PPython for Devs⚡️ Опубликована предварительная страница What’s new in Python 3.15 До релиза ещё далеко, документ в статусе draft и будет заметно меняться, но часть ключевых наPPython for Devs5️⃣ ключевых изменений в Python 3.14 глазами инженера В новой статье рассматриваем релиз через призму внутреннего устройства интерпретатора и производительности
это сообщение
PPython for DevsФотографияPPython for Devs🎄 Итоги года 4Devs 2025 На прошлой неделе Habr опубликовал итоги года — и наш проект попал в ТОП-2 среди UGC-авторов (независимых, не аффилированных с компаниям
PPython for DevsPython for Devs@python_for_devs · канал · Технологии
802подписчиков90постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем