Junior — Middle
How can memory be managed and freed in Python?
sobes.tech AI
Answer from AI
Memory management in Python is mostly automatic and implemented through a garbage collector, but there are several ways to control and free memory:
- The garbage collector automatically frees objects that have no references.
- You can manually delete objects using
delto remove a reference to the object and allow the collector to delete it. - For cyclic references, the
gcmodule is used, which can be called explicitly:
import gc
gc.collect()
- Using context managers (
with) helps automatically release resources, such as files or network connections. - For large data structures, weak references (
weakref) can be used so that objects are deleted when there are no strong references to them.
Example of deleting an object and calling the garbage collector:
import gc
obj = [1, 2, 3]
del obj # delete the reference
gc.collect() # run garbage collection
Thus, in Python, it is usually sufficient to rely on automatic memory management, but if necessary, the described methods can be used for control and resource release.