[issue12085] subprocess.Popen.__del__ raises AttributeError if __init__ was called with an invalid argument list
Terry J. Reedy
report at bugs.python.org
Sat Sep 21 23:19:32 CEST 2013
Terry J. Reedy added the comment:
A class attribute is still a special case fix to a generic problem, if indeed the message is a problem.
If class attribute backup is to become a requirement of all delete methods, it needs to first be documented, after pydev discussion. To apply the class attribute fix generally is tricky. If one does not create a class attribute backup for every attribute referenced in __del__, one must analyze the __init__ method for all points of possible failure, to see which attributes referenced in __del__ might be missing. Changing __init__ might change the analysis. This looks like a bad path to me.
The whole point of the special case ignoring of AttributeError in __delete__ methods is that AttributeErrors are *expected* in certain circumstances.
I opened a thread on pydev to discuss this issue.
"Revert #12085 fix for __del__ attribute error message"
The OP can avoid this issue entirely by using a conditional
if sys.version_info < (3, 2, 0)
I consider this better code than intentionally creating an uninitialized instance.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue12085>
_______________________________________
More information about the Python-bugs-list
mailing list