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

dav*_*dev 6 python lambda functional-programming

为什么是:

p = lambda s: print(s)
Run Code Online (Sandbox Code Playgroud)

语法无效但是:

def do_print(s):
    print(s)
p = lambda s: do_print(s)
Run Code Online (Sandbox Code Playgroud)

有效?

use*_*312 6

lambda的主体必须是一个表达,而不是一个陈述.print是一份声明.

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


Dan*_* D. 5

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