在Python中创建lambda时,返回什么类型?例如。 type(lambda x: x+1)
返回
答案 0 :(得分:4)
Lambda与定义常规函数几乎一样。
在您的情况下,它等效于:
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
询问 lambda函数本身的类型时,类型仅为function
:
In [1]: type(lambda x: x+1)
Out[1]: function
答案 1 :(得分:2)
>>> type(lambda x: x+1)
<class 'function'>
答案 2 :(得分:1)
它返回您可能期望的相同类型。如果您设置:
y = lambda x: x+1
然后type(y(1))
将返回int
type(y(1.1))
将返回float
。 type(y)
只会返回function
。
答案 3 :(得分:1)
Lambda只是功能之上的简单语法糖。来自documentation(重点是我):
可以使用lambda关键字创建小的匿名函数。此函数返回其两个参数的总和:lambda a,b:a + b。 Lambda函数可在需要函数对象的任何地方使用。在语法上将它们限制为单个表达式。 从语义上讲,它们只是常规函数定义的语法糖。与嵌套函数定义一样,lambda函数可以引用包含范围中的变量: