为什么在lambda中打印不起作用?

2024-03-29 01:51:23 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么这不管用?

lambda: print "x"

这不是一个单独的陈述,还是别的什么? 关于lambda中允许的内容,文档似乎有点少。。。


Tags: lambda文档内容print
3条回答

如果我使用这个来进行简单的截图,我会使用这个:

fn = lambda x: sys.stdout.write(str(x) + "\n")

很好用。

一个lambda的体必须是一个单一表达式。在Python 2.x中,print是一个语句。然而,在Python 3中,print是一个函数(而函数应用程序是一个表达式,因此它将在lambda中工作)。如果您使用的是最新的Python2.x,则可以(而且应该)使用后端口打印功能:

In [1324]: from __future__ import print_function

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

In [1326]: f("HI")
HI

你写的相当于

def anon():
    return print "x"

这也会导致语法错误,python不允许您在2.xx中为print赋值;在python3中,您可以说

lambda: print('hi')

因为他们把print改成了一个函数而不是一个语句。

相关问题 更多 >