Multi-line lambda proposal.
Sybren Stuvel
sybrenUSE at YOURthirdtower.com.imagination
Thu May 11 05:53:08 EDT 2006
yairchu at gmail.com enlightened us with:
> this is how I think it should be done with multi-line lambdas:
>
> def arg_range(inf, sup, f):
> return lambda(arg):
> if inf <= arg <= sup:
> return f(arg)
> else:
> raise ValueError
This is going to be fun to debug if anything goes wrong. Ever seen
such a traceback?
> and instead of
> @arg_range(5, 17)
> def f(arg):
> return arg*2
>
> you do:
> f = arg_range(5, 17, lambda(arg)):
> return arg*2
A function decorator is supposed to add something to a function. The
syntax that sticks the closest to that of defining a function seems
most Pythonic to me.
I can already foresee that I'll have a tougher time explaining your
lambda-based "decorators", than the current decorators, to people
learning Python.
Sybren
--
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself?
Frank Zappa
More information about the Python-list
mailing list