Что такое Garbage Collector в Python и как он работает?
Answer from AI
sobes.tech AI
Garbage Collector (GC) в Python — это механизм автоматического управления памятью, который освобождает память, занятую объектами, которые больше не используются программой.
Python использует несколько методов для этого:
-
Подсчет ссылок (reference counting): каждый объект хранит счетчик ссылок — количество переменных или других объектов, которые ссылаются на него. Когда счетчик падает до нуля, объект сразу удаляется.
-
Циклический сборщик: подсчет ссылок не может освободить объекты, участвующие в циклических ссылках (когда объекты ссылаются друг на друга). Для этого Python запускает дополнительный сборщик циклов, который периодически ищет такие циклы и удаляет их.
Пример:
import gc
class A:
def __init__(self):
self.ref = None
# Создаем циклическую ссылку
obj1 = A()
obj2 = A()
obj1.ref = obj2
obj2.ref = obj1
# Удаляем внешние ссылки
del obj1
del obj2
# Циклический сборщик освободит память
gc.collect()
Таким образом, Garbage Collector помогает избежать утечек памяти и освобождает программиста от необходимости вручную управлять памятью.