short path evaluation, why is f() called here: dict(a=1).get('a', f())

aspineux aspineux at gmail.com
Mon Jan 14 14:07:22 EST 2008


On Jan 14, 7:49 pm, "Chris Mellon" <arka... at gmail.com> wrote:
> On Jan 14, 2008 12:39 PM, aspineux <aspin... at gmail.com> wrote:
>
>
>
> > This append in both case
>
> > dict(a=1).get('a', f())
> > dict(a=1).setdefault('a', f())
>
> > This should be nice if f() was called only if required.
>
> Think about the change to Python semantics that would be required for
> this to be true, and then use collections.defaultdict instead.

Yes, I missed 'get' and 'setdefault' are functions :-)
Then why not some new semantic

d.get('a', f())     --> d['a', f()]
d.setdefault('a', f()) --> d['a'=f()]

Is is a good idea enough to change the python semantic ?
Or simply is it a good idea ?





More information about the Python-list mailing list