[Python-Dev] tp_finalize vs tp_del sematics
Valentine Sinitsyn
valentine.sinitsyn at gmail.com
Tue Aug 25 10:06:33 CEST 2015
Hi Armin,
On 25.08.2015 13:00, Armin Rigo wrote:
> 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
Indeed, that's very strange. Looks like a bug IMHO. Thanks for pointing out.
Valentine
More information about the Python-Dev
mailing list