Лямбда-выражение не возвращает значение - PullRequest
0 голосов
/ 05 сентября 2018

Я не понимаю, почему этот код возвращает repr объекта вместо значения 20.

>>> a = 10
>>> lambda a: a*2

Вот что возвращается к стандартному выводу:

<function <lambda> at 0x02D93780>

Ответы [ 4 ]

0 голосов
/ 05 сентября 2018

Поскольку вы создали функцию, она распечатала эту функцию на консоли. Когда вы создали функцию, она напечатала буквальное место в памяти функции. Вам нужно будет сохранить функцию в переменной и распечатать ее, чтобы получить выходные данные, в зависимости от места в памяти и типа функции. Вот пример:

>>> a = 10

>>> lambda a: a *2

<function <lambda> at 0x033E7978>
>>> print(a)

10
0 голосов
/ 05 сентября 2018
# declaring the lambda
my_lambda_function = lambda a: a*2

# calling the lambda
my_lambda_function(10)
0 голосов
/ 05 сентября 2018

Вам необходимо присвоить свой функциональный объект некоторой переменной, чтобы использовать его в будущем. Лямбда-выражение создает объект функции (например, оператор def), и вам нужно вызвать его, чтобы получить результат

>>> a = 10
>>> myfunc = lambda a: a*2
>>> myfunc(11) #22
22
0 голосов
/ 05 сентября 2018

Вам нужно вызвать функцию и передать ей параметр.

a = 10
(lambda a: a*2)(a)
...