Python uses automatic memory management via reference counting and garbage collection.
Reference counting:
sys.getrefcount(obj) — check references.1import sys23a = [1, 2, 3]4print(sys.getrefcount(a)) # 2 (a + argument)56b = a # New reference7print(sys.getrefcount(a)) # 389del a # Delete reference10print(sys.getrefcount(b)) # 2
Garbage Collection (GC):
gc.collect() — manual run.gc.garbage — objects that cannot be deleted.1import gc23# Circular reference4a = []5b = []6a.append(b)7b.append(a)89del a, b10gc.collect() # Cleanup
Memory pools: