Код IT
← Каталог

Java, Python и Go — циклические ссылки и gc.collect()

Python: refcount не видит цикл; модуль gc собирает замкнутый граф.

python garbage-collectionencyclopedia4 embed URL статья в энциклопедии
Python main.py
import sys

a = []
b = [a]
a.append(b)  # refcount > 0 у обоих, снаружи недостижимы
del a, b
import gc
gc.collect()  # разрывает цикл
import sys

a = []
b = [a]
a.append(b)  # refcount > 0 у обоих, снаружи недостижимы
del a, b
import gc
gc.collect()  # разрывает цикл