为什么这个不起作用?
lambda: print "x"
这不是一个单独的陈述,还是其他的东西?文档似乎对lambda中允许的内容有点稀疏……
发布于 2011-05-25 21:24:10
在我使用它进行简单的存根输出的情况下,我使用以下代码:
fn = lambda x: sys.stdout.write(str(x) + "\n")
它工作得很完美。
发布于 2010-06-04 09:03:44
您所写的内容相当于
def anon():
return print "x"
这也会导致一个SyntaxError,python不允许在2.xx中为print赋值;在python3中您可以这样说
lambda: print('hi')
它可以工作,因为他们已经将print更改为一个函数,而不是语句。
发布于 2010-06-04 09:06:57
lambda的主体必须是返回值的表达式。作为一条语句,print
不会返回任何内容,甚至None
也不会。同样,您不能将print
的结果赋给一个变量:
>>> x = print "hello"
File "<stdin>", line 1
x = print "hello"
^
SyntaxError: invalid syntax
您也不能将变量赋值放在lambda中,因为赋值是语句:
>>> lambda y: (x = y)
File "<stdin>", line 1
lambda y: (x = y)
^
SyntaxError: invalid syntax
https://stackoverflow.com/questions/2970858
复制相似问题