[Python-Dev] tp_finalize vs tp_del sematics

Armin Rigo arigo at tunes.org
Tue Aug 25 10:00:24 CEST 2015


Hi Valentine,

On 25 August 2015 at 09:56, Valentine Sinitsyn
<valentine.sinitsyn at gmail.com> wrote:
>> Yes, I think so.  There is a *highly obscure* corner case: __del__
>> will still be called several times if you declare your class with
>> "__slots__=()".
>
> Even on "post-PEP-0442" Python 3.4+? Could you share a link please?

class X(object):
    __slots__=()     # <= try with and without this
    def __del__(self):
        global revive
        revive = self
        print("hi")

X()
revive = None
revive = None
revive = None


--Armin


More information about the Python-Dev mailing list