short path evaluation, why is f() called here: dict(a=1).get('a', f())
Paul Rubin
http
Mon Jan 14 18:15:28 EST 2008
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() .
More information about the Python-list
mailing list