[Python-Dev] redefining is
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