擅长:python、mysql、java
<p>在Python中,使用<code>lambda</code>关键字,只能生成一个对单个表达式求值并返回结果的函数对象。要使用语句或具有多行的函数,必须使用<code>def</code>关键字,它需要名称。在</p>
<p>对<code>lambda</code>进行限制的原因主要是因为Python将行尾视为一件重要的事情:</p>
<p><a href="https://stackoverflow.com/questions/1233448/no-multiline-lambda-in-python-why-not">No Multiline Lambda in Python: Why not?</a></p>
<p>不过,名字并不重要。您可以制定一个约定,每个“匿名”函数都将用名称<code>anon</code>或其他名称来定义。如果你真的在乎,你可以抹去名字的所有痕迹:</p>
<pre><code>y = 5
def anon(x):
return x + y # note "closure" over the current value of y
myFunction = anon
# if you really care, you can erase all evidence of name "anon"
anon.__name__ = '' # wipe the record of original name "anon"
del(anon) # unbind the name "anon"
</code></pre>
<p>因此,对于函数式编程,Python可以创建一流的函数对象,传递它们等等。Python不能做的一件事就是创建一个从来没有名字的复杂函数对象,但这确实没有任何理由重要。在</p>