On Sat, 11 Aug, Marc 'BlackJack' Rintsch wrote: > On Sat, 11 Aug 2007 14:50:33 +0200, Stefan Bellon wrote:
> > But then, even when terminating the interpreter, __del__ is not > > called. > > Because that is not guaranteed by the language reference. The reason > why it is a bad idea to depend on `__del__` for important resource > management. Ok, but then we are back to my initial question of whether the destroy of def get_data(obj): iter = make_iter(obj) while more(iter): yield next(iter) destroy(iter) can be guaranteed somehow in Python 2.4 while it can be done in Python 2.5 like follows: def get_data(obj): iter = make_iter(obj) try: while more(iter): yield next(iter) finally: destroy(iter) And then the answer is: no, it cannot be done in 2.4 (like Alex Martelli already said ;-) -- Stefan Bellon -- http://mail.python.org/mailman/listinfo/python-list