为什么不能在lambda表达式中使用print()?

时间:2010-12-07 19:36:19

标签: python lambda functional-programming

为什么:

p = lambda s: print(s)

语法无效但是:

def do_print(s):
    print(s)
p = lambda s: do_print(s)

有效?

3 个答案:

答案 0 :(得分:6)

lambda的身体必须是表达,而不是陈述。 print是一个声明。

更新:正如所指出的,在2.x中,print是一个语句,而在Python 3中,它是一个函数。

答案 1 :(得分:5)

你正在使用哪个版本的python?在python 2.7(和之前)中,print是语句,而在python 3中,它是函数

答案 2 :(得分:-1)

它是读取语言的方式,它无法一步完成p = lambda s: print(s)