[Python-Dev] PEP 442 accepted (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Fri Jun 14 19:34:41 CEST 2013


On Wed, 5 Jun 2013 09:10:54 -0700 Benjamin Peterson <benjamin at python.org> wrote:

I (and Guido) are accepting PEP 442 (Safe object finalization) on the condition that finalizers are only ever called once globally.

Ok, so there's an issue with that condition: it can't be upholded on non-GC objects. Creating a non-GC object is quite obscure and rare, though, since it requires basically a class with no dict and an empty slots:

class C: slots = () survivors = []

def __del__(self):
    self.survivors.append(self)

In this case, a C instance's del will be called every time destruction is attempted, not only once. Is that a realistic problem?

Regards

Antoine.



More information about the Python-Dev mailing list