如何在不确定返回类型的情况下表达python可调用类型?

Saj*_*ani 1 python type-hinting python-typing

我有一个函数返回另一个函数,但返回函数的返回类型不清楚。为了表达我们可以使用的函数返回类型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
Run Code Online (Sandbox Code Playgroud)

小智 5

从理论上讲,f收益或者intstr,因此,返回类型应该是typing.Union[int, str]

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