![](/img/trans.png)
[英]Python type hint Callable with one known positional type and then *args and **kwargs
[英]How to type hint args and kwargs, if not unpacking, in most general form?
假設我想在不使用*args
和**kwargs
的情況下將args
和kwargs
傳遞給 function 。
在這種情況下,最常用的類型提示是什么?
args
是否可Iterable
, kwargs
是否可以Mapping
?
示例代碼
這是使用 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})
如果您知道實際的 arguments 和 kwargs,那么您顯然可以使用這些細節,包括TypedDict
的 TypedDict。
在這種最一般的情況下,您可以使用Iterable
和Mapping[str, object]
。
由於命名的非關鍵字、可變長度的位置 arguments 等,這里很有可能過度鍵入已知函數。您可能不想禁止將def foo(a, b, c=4)
稱為foo(1, b=1, c=2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.