Lambda返回内存地址

时间:2017-01-30 13:20:14

标签: python lambda

我觉得这个问题类似于This one

return(lambda x: "Even" if number % 2 == 0 else "Odd")

我可以解决这个问题:

if number % 2 == 0:
    return("Even")
else: 
    return("Odd")

但我想为此准备一个整齐的单线。现在我卡住了,我的代码返回

at 0x7fb0378fb0d0>

我错过了什么?

3 个答案:

答案 0 :(得分:2)

Lambda返回一个函数,所以你得到函数的地址。

试试这个:

return ((lambda x: "Even" if x % 2 == 0 else "Odd")(2))

这里执行lambda函数而不是只返回函数本身。

您可以将lambda函数分配给这样的变量:

func = lambda x: "Even" if x % 2 == 0 else "Odd"

然后使用相关参数调用该函数:

func(2)

答案 1 :(得分:2)

你根本不应该使用lambda。只是做

return 'Even' if number % 2 == 0 else 'Odd'

return ('Even', 'Odd')[number % 2]

答案 2 :(得分:0)

lambda返回函数

试试这个

f = lambda (x :"Even" if x % 2 == 0 else "Odd")
print f(2)

希望它有所帮助!