我有时发现自己想让占位符“不做任何事”lambda表达式,类似于说:
def do_nothing(*args):
pass
但是以下语法是非法的,因为lambda表达式试图返回冒号后面的内容,而您不能返回pass
。
do_nothing = lambda *args: pass
所以我想知道,下面的表达式是否适合替代上面的表达式?
do_nothing = lambda *args: None
由于上面的do_nothing
函数在技术上返回None
,所以可以生成返回None
的lambda表达式作为占位符lambda表达式吗?或者是不好的做法?
如果你真的想要一个完整的什么都不做的函数,请确保使用
*args
和*kwargs
。在所有光荣的行动中
旁注
帮自己一个忙,包括
**kwargs
处理。如果你试图在代码的某个地方使用它,却忘了它不会占用kwargs
,那么什么都不做是一个例外:这:
相当于:
一个是
lambda
,一个不是(例如,__name__
在函数上是do_nothing
,在lambda上是<lambda>
)。如果这对你很重要,不要忘记**kwargs
。Python中没有显式return <x>
返回None
的函数。这是here:我使用了类似的函数作为默认值,例如:
有时lambda函数用于数据转换,在这种情况下,“不做任何事”意味着返回输入,即
lambda x: x
如果你不能回信
lambda x: None
相关问题 更多 >
编程相关推荐