On 2/28/2018 11:51 PM, ooom...@gmail.com wrote:
This PEP proposes that valid python interpreters *must* synchronously destroy objects when the last reference to an object goes out of scope. This interpreter behaviour is currently permitted and exhibited by the reference implementation [CPython], but it is optional.
CPython does *not* guarantee destruction when the object reference goes out of scope, even if there are no other references. I would very much appreciate such a deterministic behaviour, at least with CPython.
I recently had to debug an issue in the matplotlib wx backend (*). Under certain conditions, the wx device context was not destroyed when the reference went out of scope. Adding a del to the end of the method or calling the Destroy method of the context did fix the issue. (There was also a hidden reference, but avoiding this was not sufficient. The del was still required.)
(*) https://github.com/matplotlib/matplotlib/issues/10174 Regards, Dietmar -- https://mail.python.org/mailman/listinfo/python-list