A friendlier, sugarier lambda -- a proposal for Ruby-like blocks in python

sjdevnull at yahoo.com sjdevnull at yahoo.com
Sun Oct 15 11:54:23 EDT 2006


Alexey Borzenkov wrote:
> bearophileHUGS at lycos.com wrote:
> > but maybe it reduces code readabilty a bit for people
> > that have just started to program:
> >
> > mul2 = def(a, b):
> >     return a * b
> >
> > Instead of:
> >
> > def mul2(a, b):
> >     return a * b
>
> For such simple cases, yes. What about:
>
>   button.click += def(obj):
>     # do stuff
>
> You obviously can't:
>
>   def button.click(obj):
>     # do stuff
>
> :-) And if you make intermediate function and then assign it somewhere,
> it "pollutes namespace": it's still left there, unneeded.

If you're really uptight about it you can
def temp_function(...):
  ....
button.click = temp_function
del(temp_function)

But for something like the example I'd probably just use a local name
wherever the definition is needed; there's no namespace pollution in
any meaningful sense then.




More information about the Python-list mailing list