Is this a good use for lambda
Fredrik Lundh
fredrik at pythonware.com
Mon Dec 20 01:43:43 EST 2004
Bengt Richter wrote:
>>Ahem. If you name the function, you can reuse the name (or just forget about it)
>>as soon as you've used the function object.
>>
>>If you don't want to reuse the name because you might want to reuse the function
>>object, you have to name it anyway.
>>
> Are you forgetting that all bindings are not directly name bindings as created by def? ;-)
> (See also various tkinter-related uses).
>
> >>> funs = [lambda:'one', lambda:'two', lambda:'three']
now you've used the function objects once each.
> >>> for use in xrange(2):
> ... for i in xrange(3):
> ... print '%susing fun[%s] => %r' %('re'*(use>0), i, funs[i]())
and now you're using the data structure you built... at this point, it doesnt matter
if the functions had distinct names to start with.
(coming up with a contrived example where it matters is trivial, of course, but by
then, we've moved into "whitespace" or "static typing leads to more reliable code"
country)
</F>
More information about the Python-list
mailing list