39. Опишите принцип работы сборщика мусора в Python В Python имеется встроенный механизм управления памятью, реализующий сборщик мусора (garbage collector ). Сборщик мусора периодически запускается и подсчитывает ссылки на объекты. Если ссылок нет, память можно освобождать. Это просто и эффективно, но есть один недостаток - определеление циклических ссылок. Для этого существует дополнительный сборщик, generational garbage collection, который следит за объектами с циклическими ссылками. В Python встроен модуль gc, благодаря которому можно осуществить управление или слежение за сборкой мусора. (https://docs.python.org/3/library/gc.html) Дополнительно упомяну каверзный вопрос: что делать, чтобы избежать циклических ссылок в своём коде? Правильный ответ - писать нормальный код. Ожидаемый ответ - использовать модуль weakref (https://docs.python.org/3/library/weakref.html#module-weakref) p.s. Количество ссылок на ваш объект можно узнать так: import sys sys.getrefcount(some_object) #сериал101, #39
1 год назад