Am 10.12.2019 22:29 schrieb Chris Angelico:

And once again, you are maintaining your assumptions despite being
very clearly shown that they are wrong. "del instance" does not
directly call __del__ any more than "instance = 1" does. You HAVE been
shown.

Much of the confusion in this thread comes from the murky distinction between "garbage collection" and "memory management." I wouldn't call a reference-counting system "garbage collection" per se.

Another bone of contention seems to be the question exactly WHEN reference counting and/or garbage collection release an object's resources (give it back to memory management). I read the word "when" in the non-implementation-specific Python docs as "immediately upon" (quote below, caps by me):

"Note: del x doesn’t directly call x.__del__() — the former decrements the reference count for x by one, and the latter is only called WHEN x’s reference count reaches zero."

It is then up to Python's memory management (PyMem_Alloc et al in CPython) what to do, and when: Give it back to the OS, keep it around for later use, whatever.

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to