short path evaluation, why is f() called here: dict(a=1).get('a', f())
Steven D'Aprano
steven at REMOVE.THIS.cybersource.com.au
Mon Jan 14 22:14:19 EST 2008
On Mon, 14 Jan 2008 15:15:28 -0800, Paul Rubin wrote:
> Steven D'Aprano <steve at REMOVE-THIS-cybersource.com.au> writes:
>> map = {'a': Aclass, 'b': Bclass, 'c': Cclass} class_ = map.get(astring,
>> default=Zclass)
>>
>> The result I want is the class, not the result of calling the class
>> (which would be an instance). If I wanted the other semantics, I'd be
>> using defaultdict instead.
>
> I used default as a keyward arg name indicating the presence of a
> callable. I probably should have called it defaultfunc or something.
>
> x = d.get('a', f) # --> default value is f x = d.get('a',
> defaultfunc=f) # --> default value is result of f() .
So you're talking about proposed *added* behaviour, rather than
*replacing* the current behaviour?
Sorry if I misunderstood you in the first place.
--
Steven
More information about the Python-list
mailing list