def callable_runner(a_callable: Callable[..., Any], args: Sequence[Any]=None, kwargs: Mapping[Any, Any]=None) -> None:
if args is None:
args = []
if kwargs is None:
kwargs = {}
a_callable(*args, **kwargs)
我觉得这可能是一个正确的用法,但我不确定,因为我还没有完全掌握类型。
让我怀疑自己的是,Pycharm在*args
上向Expected an iterable, got Sequence | None | list
发出警告,并在**kwargs
上发出警告Expected a dictionary, got Mapping | None | dict
。
我倾向于向PyCharm提出警告错误,但我不是很自信。