[prev in list] [next in list] [prev in thread] [next in thread]
List: python-list
Subject: Re: Use cases for del
From: Ron Adam <rrr () ronadam ! com>
Date: 2005-07-06 16:10:16
Message-ID: InTye.185656$IO.42677 () tornado ! tampabay ! rr ! com
[Download RAW message or body]
Steven D'Aprano wrote:
> On Wed, 06 Jul 2005 10:00:02 -0400, Jp Calderone wrote:
>
>
> > On Wed, 06 Jul 2005 09:45:56 -0400, Peter Hansen <peter@engcorp.com> wrote:
> >
> > > Tom Anderson wrote:
> > >
> > > > How about just getting rid of del? Removal from collections could be
> > > > done with a method call, and i'm not convinced that deleting variables
> > > > is something we really need to be able to do (most other languages
> > > > manage without it).
> > >
> > > Arguing the case for del: how would I, in doing automated testing,
> > > ensure that I've returned everything to a "clean" starting point in all
> > > cases if I can't delete variables? Sometimes a global is the simplest
> > > way to do something... how do I delete a global if not with "del"?
> > >
> >
> > Unless you are actually relying on the global name not being defined, "someGlobal \
> > = None" would seem to do just fine.
> > Relying on the global name not being defined seems like an edge case.
>
>
> Er, there is a lot of difference between a name not existing and it being
> set to None.
Yes, they are not currently the same thing.
But what if assigning a name to None actually unbound it's name?
And accessing an undefined name returned None instead of a NameError?
Using an undefined name in most places will still generate some sort of
an None type error.
I think the biggest drawback to this second suggestion is that we would
have to test for None in places where it would matter, but that's
probably a good thing and enables checking if a variable exists without
using a try-except.
$ cat mymodule2.py
# define some temporary names
a, b, c, d, e, f = 1, 2, 3, 4, 5, 6
# do some work
result = a+b+c+d*e**f
# delete the temp variables
a = b = c = d = e = f = None # possibly unbind names
This would work if None unbound names.
> It is bad enough that from module import * can over-write your variables
> with the modules' variables, but for it to do so with DELETED variables is
> unforgivable.
Yes, I agree using None as an alternative to delete currently is
unacceptable.
Cheers,
Ron
--
http://mail.python.org/mailman/listinfo/python-list
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic