[Python-Dev] redefining is (original) (raw)

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