Any other Python flaws?
D-Man
dsh8290 at rit.edu
Mon Jun 18 14:49:34 EDT 2001
On Fri, Jun 15, 2001 at 02:18:04PM -0500, Michael Chermside wrote:
| Martijn writes:
| > Further things possibly wartlike, though this one never bit me, is
| > the possibly to assign to None, definitely a weird idea when you
| > first encounter it.
[other questions/points already answered]
| Oh well... at least people don't bump into this one much. And if you
| accidently clobber it, you can restore things with:
|
| def __None():
| pass
| None = __None()
Well, that doesn't work. One of the key features of 'None' is that
there only ever exists a single instance. This would create a new,
unique, instance bound to (a more local) 'None'.
IOW
id( None ) != id( __builtins__.None )
and
id( None ) != id( other_module.None )
which results in (if, for some reason, None was returned instead of
raising an exception -- maybe it isn't always failure but only to this
client)
foo = other_module.func()
if foo is None :
print "failed"
else :
print "success"
not working. Also,
foo = other_module.func()
if foo == None :
print "failed"
else :
print "success"
wouldn't work because the None's are instances of different classes
and don't define a comparision function that makes them equal.
-D
More information about the Python-list
mailing list