将lambda作为关键字参数传递可以很容易地作为完成
def foo(bar=lambda x: x):
pass
我想要一个无->无lambda作为默认值:
def foo(bar=lambda: pass):
pass
但是得到
def foo(bar=lambda: pass):
^
SyntaxError: invalid syntax
如何传递无->没有lambda作为默认关键字参数?
也许pass
不是return None
的同义词。那么也许可以返回None
?
def foo(bar=lambda: None):
pass
pass
是一个语句,而lambda只能包含一个表达式(实际上,它是一个函数,其唯一一行是return
,lambda的主体是返回的内容(。
在Python中,当到达函数末尾而没有显式返回时(或者当有显式返回而没有指定要返回的内容时(,它会返回None
。所以一个函数
def foo():
pass
相当于
def foo():
return None
因此,您可以将其写成返回None
:的lambda
lambda: None