Python 3.10标准库是否有忽略参数返回None的函数?适配回调需求
问题解决方法
Python 3.10标准库中没有专门用于丢弃函数返回值并返回None的等价函数,但可以用以下几种简洁方式实现需求:
方法一:利用元组索引强制返回None
直接在lambda中调用目标函数后,通过元组索引确保最终返回None,可通过类型检查:
some_third_party_function(lambda: (func_to_use_as_callback(), None)[1])
方法二:使用赋值表达式(Python 3.8+)
用赋值表达式显式接收返回值,再返回None,意图更清晰:
some_third_party_function(lambda: (_ := func_to_use_as_callback(), None)[1])
方法三:嵌套lambda包装
用嵌套lambda模拟你写的_discard_arg逻辑,一行实现:
some_third_party_function(lambda: (lambda _: None)(func_to_use_as_callback()))
另外你自己实现的_discard_arg函数本身已经很简洁,若需要多次复用,完全可以继续使用。
内容的提问来源于stack exchange,提问作者Ross Bencina
相关产品推荐
相关产品推荐

