Какой тип возврата лямбда-функции в Python? - PullRequest
0 голосов
/ 10 февраля 2019

Когда вы создаете лямбду в Python, какой тип возвращается?Например, type(lambda x: x+1) возвращает

Ответы [ 4 ]

0 голосов
/ 10 февраля 2019

Лямбды - это просто синтаксический сахар поверх функций.Из документации (выделено мной):

Небольшие анонимные функции можно создавать с помощью ключевого слова lambda.Эта функция возвращает сумму двух своих аргументов: лямбда a, b: a + b.Лямбда-функции можно использовать везде, где требуются функциональные объекты.Они синтаксически ограничены одним выражением. Семантически, они являются просто синтаксическим сахаром для нормального определения функции. Как и определения вложенных функций, лямбда-функции могут ссылаться на переменные из содержащей области:

0 голосов
/ 10 февраля 2019

Возвращает тот же тип, который вы могли ожидать.Если вы установите:

y = lambda x: x+1

, то type(y(1)) вернет int type(y(1.1)) вернет float.type(y) просто вернет function.

0 голосов
/ 10 февраля 2019
>>> type(lambda x: x+1)
<class 'function'>
0 голосов
/ 10 февраля 2019

Лямбда - почти то же самое, что и определение обычной функции.

В вашем случае это эквивалентно:

def _(x):
    return x+1

Из-за этого и из-за динамической типизации Python.тип возвращаемого значения зависит от того, что делает функция.

Вызов функции с разными значениями может возвращать разные значения:

In [2]: y = lambda x: x+1

In [3]: y(1)
Out[3]: 2

In [4]: type(y(1))
Out[4]: int

In [5]: y(1.0)
Out[5]: 2.0

In [6]: type(y(1.0))
Out[6]: float

При запросе о типе сама лямбда-функция , тип просто function:

In [1]: type(lambda x: x+1)
Out[1]: function
...