Nicolas Dumazet ha scritto:
What is the reason of the "delete" name for this function? "__del__" looks better, as I can see there are case where delete() isn't called.
The exact same question popped in my mind when I fixed the error. I think that it is not guaranteed that __del__ always get called on interpreter exit, and that for this reason it is better not to rely on __del__ for cleanups.
But I can't find more details than the simple "It is not guaranteed that __del__() methods are called for objects that still [...]" from the Python documentation =))
I haven't said to rely on "__del__". I wonder if __del__() may be called explicitly in our wikipedia._flush ("_flush"?) function, instead of 'delete'.