why del is not a function or method?

Peter Otten __peter__ at web.de
Mon Oct 16 13:52:14 EDT 2017


Stefan Ram wrote:

> Peter Otten <__peter__ at web.de> writes:
>>team.pop(2)
>>Stefan's explanation may work for
>>del x
>>if you discard
>>x = None  # get rid of the huge object that x was bound to before
>>as a hack
> 
>   »x = None« observably has not the same effect as »del x«:
> 
> |>>> x = 2; x = None; x
> |>>> x = 2; del x; x
> |NameError: name 'x' is not defined

That's a minor technical detail.

I understood the original question as one regarding language design, and I 
don't think merely stating what a statement does counts as a reason for its 
inclusion in the language.

x = None

covers the memory-micromanaging aspect of

del x

which makes some marginal sense. 

I expect to see the NameError (control flow aspect, if you will) only when 
there's a bug in the program.





More information about the Python-list mailing list