return语句中的Lambda提供两个输出,但是如果不使用print则只有一个输出

时间:2018-09-27 17:51:19

标签: python function lambda

def x(n):
    return lambda a: print(a)
print(x(1)(2))

这将输出: 2 没有

这是什么意思? 我不明白这里的流程...

1 个答案:

答案 0 :(得分:4)

您需要的是:

def x(n):
    return lambda a: a
print(x(1)(2))

当您执行return lambda a: print(a)时,您将打印a并返回print()返回的结果,即调用该函数时所打印的内容。 print()语句返回None。参见:

print(print(1))
# 1
# None