[Python-Dev] redefining is (original) (raw)
Barry Warsaw barry at python.org
Thu Mar 18 11:48:29 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 11:45, Aahz wrote:
On Thu, Mar 18, 2004, Barry Warsaw wrote: > On Thu, 2004-03-18 at 10:23, Jewett, Jim J wrote: >> >> There is an idiom (I've seen it more in Lisp than in python) >> of creating a fresh object to act as a sentinel. > > 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!
Ugh. While I agree that the idiom has its place, this ain't one of them; you should be using
in
(orhaskey()
). The standard idiom is even more readable, and there should be only one way to do it. Maybe you meant something more like if d['somekey'] is missing:
Let me rephrase that:
missing = object() value = d.get('somekey', missing) if value is missing:
it ain't there
else: return value
-Barry
- Previous message: [Python-Dev] redefining is
- Next message: [Python-Dev] redefining is
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]