[Python-Dev] dict.addlist()
Phillip J. Eby
pje at telecommunity.com
Tue Jan 20 10:12:21 EST 2004
At 09:56 AM 1/20/04 -0500, Phillip J. Eby wrote:
>try:
> return self._somemapping[key]
>except:
> self._somemapping[key] = value = somethingExpensive(key)
> return value
Oops, that should've been except KeyError. Which actually points up
another reason to want to use a setdefault mechanism, although admittedly
not for the builtin dictionary type. Using exceptions for control flow can
mask actual errors occuring within a component being used.
Thus, when I create mapping-like objects, I try as much as possible to push
"defaulting" into the lower-level mappings, to avoid needing to trap errors
and turn them into defaults. Sometimes, however, that default is expensive
to create, so I actually use a factory argument, and it's often named
'factory'. Hence, my enthusiasm for the suggestion.
More information about the Python-Dev
mailing list