Answers:
一个lambda
人的身体必须是一个单一的表情。在Python 2.x中,print
是一条语句。但是,在Python 3中,print
是函数(而函数应用程序是表达式,因此它将在lambda中工作)。如果您使用的是最新的Python 2.x,则可以(并且应该,为了向前兼容:)使用向后打印功能:
In [1324]: from __future__ import print_function
In [1325]: f = lambda x: print(x)
In [1326]: f("HI")
HI
from __future__ import print_function
必须在代码开头吗?THX
print()
内置方法。
在我将其用于简单存根的情况下,请使用以下方法:
fn = lambda x: sys.stdout.write(str(x) + "\n")
完美地运作。
你写的等同于
def anon():
return print "x"
这也会导致SyntaxError,python不允许您分配要在2.xx中打印的值;在python3中,你可以说
lambda: print('hi')
这样做是可行的,因为他们将print更改为函数而不是语句。
from __future__ import print_function
,可以在py2.x中启用此功能
lambda: sys.stdout.write('hi')
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