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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4