[Python-Dev] redefining is (original) (raw)

Andrew Koenig ark-mlist at att.net
Thu Mar 18 13:39:50 EST 2004


A very common use case in Python is where None is a valid value in a dictionary:

missing = object() if d.get('somekey', missing) is missing: # it ain't there It even reads well!

Indeed. Of course, object() is mutable, so there is no proposal to change the meaning of this program. What I'm concerned about is someone trying to do the same thing this way:

missing = 'missing'

if d.get('somekey', missing) is 'missing':
    # it ain't there

This code contains a bug, but on an implementation that interns strings that happen to look like identifiers, no test will detect the bug.



More information about the Python-Dev mailing list