首页 > 解决方案 > 如何在不确定返回类型的情况下表达python可调用类型?

问题描述

我有一个返回另一个函数的函数,但返回函数的返回类型不清楚。为了表达我们可以使用的函数返回类型Callable[[], ReturnType],并且不强调参数,我们可以这样做Callable[..., ReturnType]。但我希望这ReturnType不是确定的。

我应该怎么办?

我的代码是这样的:

def funcA() -> int:
  return 2

def funcB() -> str:
  return 'b'

def f(inp: int) -> Callable[[], X] # <--- what should X be Here?
  return funcA if inp == 0 else funcB

标签: pythontype-hintingpython-typing

解决方案


理论上,f返回一个intor str,所以返回类型应该是typing.Union[int, str]

如果您不想指定返回类型,则可以使用typing.Any.


推荐阅读