[Python-Dev] redefining is

Robert Brewer fumanchu at amor.org
Thu Mar 18 11:27:40 EST 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!

/Fu bonks himself in the forehead

That's *so* much nicer than the contortions I have gone through from
time to time, not just for dicts, but arg lists. I was writing ugly crap
like:

# Something nobody would ever create
LessThanNothing = (0, -38, (None, '7 1/2'))
def func(arg1, arg2, arg3=LessThanNothing):
    if arg3 == LessThanNothing:
        arg3 = None # or whatever the *real* default should be...

Bah. Thanks, Barry. :)


Robert Brewer
MIS
Amor Ministries
fumanchu at amor.org



More information about the Python-Dev mailing list