当默认值为空时如何输入提示可调用元组

Ale*_*are 4 python mypy

我这样提示:

some_kwarg: Tuple[Callable] = ()
Run Code Online (Sandbox Code Playgroud)

但 mypy 提高

error: Incompatible default for argument "some_kwarg" (default has type "Tuple[]", argument has type "Tuple[Callable[..., Any]]")
Run Code Online (Sandbox Code Playgroud)

我不想在默认 kwarg 中放置一个虚拟可调用对象,那么正确的做法是什么?

jua*_*aga 7

您正在键入注释以接受大小正好为 1 的元组。使用:

Tuple[Callable, ...]
Run Code Online (Sandbox Code Playgroud)

指示任意大小的齐次元组。

  • 或者,“Sequence[Callable]”(大致相同) (4认同)
  • @AlexanderSoare 不。“Tuple[Callable]”意味着一个元组*只有一个元素*。如果你的意思只是一个正好有十个的元组,那么你需要 `Tuple[Callable, Callable, Callable, Callable, Callable, Callable, Callable, Callable, Callable, Callable]` (2认同)