我需要给一个库函数提供一个返回None的可调用函数:
def some_third_party_function(callback: Callable[[], None]) -> None:
...
但是我想使用一个不返回None
的函数,并丢弃它的参数。
def func_to_use_as_callback() -> bool:
...
下面的尝试失败了类型检查,因为lambda没有返回None:
some_third_party_function(lambda: func_to_use_as_callback())
我现在所拥有的是:
def _discard_arg(arg) -> None:
pass
some_third_party_function(_discard_arg(lambda: func_to_use_as_callback()))
Python 3.10标准库是否包含与_discard_arg
等效的函数?还是有其他同样简洁的方法来实现所需的行为?
1条答案
按热度按时间hfyxw5xn1#
我不相信它,但这是很容易实现自己。
首先,你所拥有的是错误的。你把
lambda
放错地方了:这是一个很好的解决方案,但是在调试时很难跟踪匿名函数,所以您可能更愿意编写一个 Package 器,接受函数并使其返回none。