On Wed, Oct 14, 2009 at 04:13:12PM -0500, Daniel Stutzbach wrote: > Based on the description, it still resorts to zapping module globals by > setting them to None. It zaps them to weakrefs first, which means that > globals are more likely to be valid during __del__, but it still cannot make > any guarantees and referencing globals from __del__ is still a bad idea. Is > that a correct synopsis?
Yes, it does still resort to setting globals to None. However, the weakref step makes it much more likely that __del__ methods run before that happens. After this change, referencing global variables from __del__ methods is okay. What is not a good idea is creating __del__ methods that are part of a reference cycle (i.e. an island of references) and also refer to that cycle somehow. That has never been a good idea and those __del__ methods will never get run, before or after the proposed change. HTH, Neil _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com