Alternative to multi-line lambdas: Assign-anywhere def statements
Terry Reedy
tjreedy at udel.edu
Wed Feb 11 21:06:28 EST 2015
On 2/11/2015 8:04 AM, Albert van der Horst wrote:
> It is not until we assign the object to a name (which becomes thereby a function)
> that the __name__ thingy comes into play, like so.
But __name__ would not come into play.
> f = x->x**2
This would mean to create an anonymous function object and then bind 'f'
to that object in the current local namespace. It would be the same as
the discouraged
f = lambda x: x**2
> I've heard arguments that with -> the __name__ is not filled in correctly.
Because local namespace name binding does not and should not mutate the
object the name is bound to.
> I can't see why the parser would understand more easily
>
> def f(x):
> return x**2
> than
>
> f = x->
> return x**2
The parser parses both equally well. That is not the issue.
--
Terry Jan Reedy
More information about the Python-list
mailing list