[Python-Dev] redefining is

Aahz aahz at pythoncraft.com
Thu Mar 18 11:45:38 EST 2004


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`` (or ``has_key()``).  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:
-- 
Aahz (aahz at pythoncraft.com)           <*>         http://www.pythoncraft.com/

"usenet imitates usenet"  --Darkhawk



More information about the Python-Dev mailing list