如何将`lambda: pass`作为Python函数的关键字参数传入?
错误原因
Python lambda函数的主体仅支持单个表达式,你代码中使用的pass属于Python语句,无法直接放在lambda体内,因此触发语法错误。
正确实现
你需要的无输入、无返回值(类型为None -> None)的空lambda,直接在lambda体内返回None即可,None是合法的表达式:
def foo(bar=lambda: None): pass
调用上述lambda时不需要传入任何参数,执行后会返回None,完全符合你的需求。
补充说明
如果后续你需要默认的空函数支持多语句逻辑,也可以单独定义普通函数作为默认参数:
def empty_callback(): # 可添加任意多语句逻辑 pass def foo(bar=empty_callback): pass
内容的提问来源于stack exchange,提问作者Gulzar
相关产品推荐
相关产品推荐

