Deprecating reload() ???
Jeff Epler
jepler at unpythonic.net
Mon Mar 15 12:33:04 EST 2004
On Mon, 15 Mar 2004 05:49:58 -0600, Skip Montanaro <skip at pobox.com>
wrote:
> >You'd have to disable the integer free list. There's also code in
> >tupleobject.c to recognize and share the empty tuple. String interning
> >could be disabled as well. Everybody's ignored the gorilla in the room:
> >
> > >>> sys.getrefcount(None)
> > 1559
On Mon, Mar 15, 2004 at 10:15:33AM -0700, David MacQuigg wrote:
> Implementation detail. ( half wink )
I'd round that down from half to None, personally.
This is guaranteed to work:
x = None
y = None
assert x is y
by the following text in the language manual:
None
This type has a single value. There is a single object with
this value. This object is accessed through the built-in
name None. It is used to signify the absence of a value in
many situations, e.g., it is returned from functions that
don't explicitly return anything. Its truth value is false.
There are reams of code that rely on the object identity of None, so a
special debug mode where "x = <some literal>" makes x refer to something
that has a refcount of 1 will break code.
The 'is' guarantee applies to at least these built-in values:
None Ellipsis NotImplemented True False
The only problem I can see with reload() is that it doesn't do what you
want. But on the other hand, what reload() does is perfectly well
defined, and at least the avenues I've seen explored for "enhancing" it
look, well, like train wreck.
Jeff
More information about the Python-list
mailing list