Calling del
on a variable in Python. Does this free the allocated memory immediately or still waiting for garbage collector to collect? Like in java, explicitly calling del
has no effect on when the memory will be freed.
The del statement doesn't reclaim memory. It removes a reference, which decrements the reference count on the value. If the count is zero, the memory can be reclaimed. CPython will reclaim the memory immediately, there's no need to wait for the garbage collector to run.
In fact, the garbage collector is only needed for reclaiming cyclic structures.
As Waleed Khan says in his comment, Python memory management just works, you don't have to worry about it.