[Python-Dev] redefining is (original) (raw)
Barry Warsaw barry at python.org
Thu Mar 18 13:47:01 EST 2004
- Previous message: [Python-Dev] redefining is
- Next message: [Python-Dev] redefining is
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, 2004-03-18 at 13:39, Andrew Koenig wrote:
> 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.
Sure, but it's long been recommended against doing stuff like:
try: foo() except 'quit': pass
def foo(): raise 'quit'
This doesn't seem like it's something broken that needs fixing. Once you understand what's going on, it makes sense.
-Barry
- Previous message: [Python-Dev] redefining is
- Next message: [Python-Dev] redefining is
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]