如何解决如何以最一般的形式输入提示参数和 kwargs,如果不解包?
假设我想使用 args
和 kwargs
将 *args
和 **kwargs
传递给没有的函数。
在这种情况下,最常用的类型提示是什么?
Iterable
是 args
,Mapping
是 kwargs
吗?
示例代码
这是一些使用 Python 3.8 制作的示例代码。
from typing import Mapping,Iterable
def foo(*args,**kwargs) -> None:
pass
def foo_dispatcher(foo_args: Iterable,foo_kwargs: Mapping) -> None:
foo(*foo_args,**foo_kwargs)
foo_dispatcher([0],{"ham": 1})
解决方法
如果你知道你的实际参数和 kwargs,那么你显然可以使用细节,包括 TypedDict
作为参数。
在这种最常见的情况下,您可以使用 Iterable
和 Mapping[str,object]
。
由于命名的非关键字、可变长度的位置参数等,对于已知的函数,在这里很可能会过度输入。您可能不想禁止 def foo(a,b,c=4)
被称为 foo(1,b=1,c=2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。