为什么不用兰达打印作品?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

为什么这个不行?

lambda: print "x"

提问于
用户回答回答于

在Python2.x中,print是一份声明。

然而,在Python 3中,print功能(函数应用程序是表达式,因此它将在lambda中工作)。如果使用的是最新的Python 2.x,可以使用后端移植的print函数:

In [1324]: from __future__ import print_function

In [1325]: f = lambda x: print(x)

In [1326]: f("HI")
HI
用户回答回答于

相当于

def anon():
    return print "x"

这也会导致SyntaxError,python不允许在2.xx中指定要打印的值;在python 3中,可以这样说

lambda: print('hi')

而且它也能工作,因为他们已经将打印更改为函数而不是语句。

扫码关注云+社区