I just had a funny thought. In Python you can write:
if not someObject is None:
someObject.doSomething()
else:
print "someObject is None!"
This reads a bit strange. So what if you could alias “not … is None” to “… is Something”?
if someObject is Something:
someObject.doSomething()
else:
print "someObject is None!"
It seems that this idea was thought of almost eight years ago already. This lead to some PEP 0326, which got rejected. If Python were a macro or functional language, you could probably hack something up to do the same thing, but it does not work like that:
>>> Something = not None
>>> Something
True
>>> A = [1,2,3]
>>> if A is Something:
... print "This is something"
... else:
... print "This is nothing"
...
This is nothing
>>>
The problem here being, that “non None” is immediately evaluated to “True”, since “None” can be implicitly converted to “False” in a boolean sense. Was a funny thought, though.
Update: Turns out you can at least write “if someObject is not None:”, which is more readable.