I am new to python. I have a few questions coming from an armature!
Terry Reedy
tjreedy at udel.edu
Thu Aug 18 13:00:36 EDT 2016
On 8/18/2016 5:32 AM, Steven D'Aprano wrote:
>> Beginners often do not understand that the body of a lambda expression
>> is evaluated in a new local namespace, and only when the resulting
>> function is called, the same as with a def statement. They then neglect
>> to capture current values when writing lambda expressions in a for loop.
>
> Sure. But since the behaviour of def functions and lambda functions are
> identical, writing a named def won't solve that problem.
It will if people do not make the same mental mistake when writing a
def, because they think def functions and 'lambdas' behave differently.
I can't remember every seeing "my def function in a loop does not work
right" while "my lambda in a loop does not work right" is distressingly
common. What I don't know is whether the sparsity of the former type of
report is because those subject to the error get it right when they use
def in a loop or because they never use def in a loop.
--
Terry Jan Reedy
More information about the Python-list
mailing list