Junior — Middle
How does the automatic memory management mechanism decide which objects to free?
sobes.tech AI
Answer from AI
The automatic memory management mechanism in Python is based on reference counting and garbage collection.
Each object in memory has a reference count — the number of variables and structures referencing it. When the reference count drops to zero, the memory occupied by the object can be freed.
However, due to cyclic references (when objects reference each other), reference counting alone cannot free such objects. Python uses a garbage collector that periodically searches for these cycles and frees the memory they occupy.
Example:
import sys
class A:
pass
a = A()
print(sys.getrefcount(a)) # shows the number of references to object a
b = a # increases reference count
# When a and b are deleted or go out of scope, memory is automatically freed