Dave Opstad wrote:
> In this snippet:
>
> d = {'x': 1}
> value = d.get('x', bigscaryfunction())
>
> the bigscaryfunction is always called, even though 'x' is a valid key.
> Is there a "short-circuit" version of get that doesn't evaluate the
> second argument if the first is a valid key? For now I'll code around
> it, but this behavior surprised me a bit...
Well, if the dict only contains ints, here is a dirty hack (but don't
use it instead of the try/except approach):
class Littletinyproxy:
def __int__(self):
return bigscaryfunction()
d = dict(x=1)
value = int(d.get('x', Littletinyproxy()))
Reinhold
--
http://mail.python.org/mailman/listinfo/python-list