如何在不确定返回类型的情况下表达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
回答
从理论上讲,f收益或者int或str,因此,返回类型应该是typing.Union[int, str]。
如果您不想指定返回类型,则可以使用typing.Any.