Нюкальная лямбда-функция

62
9

В интерпретаторе python я могу определить функцию 1 но не print(1)

>>> lambda: 1
<function <lambda> at 0x023D03F0>
>>> lambda: print(1)
File "<stdin>", line 1
lambda: print(1)

Зачем?

спросил(а) 2016-03-04T17:12:00+03:00 5 лет назад
1
Решение
74

Это происходит потому, что (по крайней мере, в традиционном Python 2) print не является функцией, это утверждение - поэтому это не имеет смысла в теле лямбда.

В Python 3 или в Python 2 с print_function опцией print_function print является функцией, и она работает в лямбда:

>>> from __future__ import print_function
>>> lambda: print(1)
<function <lambda> at 0x7f69ab049578>
>>>

ответил(а) 2016-03-04T17:16:00+03:00 5 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема