python - 如何在不确定返回类型的情况下表达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
or str
,所以返回类型应该是typing.Union[int, str]
。
如果您不想指定返回类型,则可以使用typing.Any
.
推荐阅读
- tableau-api - Tableau 中的聚集直方图
- c++ - 如何在类模板中实现赋值运算符?`
- dynamic-sql - 带有准备好的语句的动态 SQL 中的 SQL 注入错误
- c++ - 在 VS2015 中格式化 C 风格的注释
- python - 如何从 QMainWindow 打开一个单独的 UI 窗口?
- ios - 核心数据,获取某个布尔值属性的总和
- laravel - Laravel firstOrCreate 没有 Eloquent
- r - ggplot直方图中的BinSize
- ruby-on-rails - 当你有 mongodb 时应该使用 rake db:migrate
- python - 根据 iat 值填充数据框中的列