Oleg Oshmyan added the comment:

> But what about the self.returncode data attribute? Should we also add a
> class 'returncode' attribute? If so, what should be its value? None? or
> object()? Or is it guaranteed that when _child_created is set true,
> returncode will be defined, so that a class attribute is not needed?

For what it's worth, returncode is indeed guaranteed to be defined when 
_child_created is True: it is initialized in __init__ before _execute_child is 
run. Of course, this does not help the general case of __del__ methods in other 
classes.

Silencing all AttributeErrors in all __del__ calls may be an easy and generic 
solution, but it will also hide genuine logic errors. I think it is reasonable 
to expect classes with __del__ to be careful about using attributes that exist, 
just like they must be careful about performing high-level operations that are 
valid in whatever state the object might be: destroy/close only things that 
have been created/opened, undo only actions that have been done etc.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue12085>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to