Python中有没有一种方法可以实现自动选择正确类型的类型转换?
假设你有课:
class Foo:
foo: list[int]
def __init__(self):
self.foo = cast(list[int], api.get())
self.foo = cast(list[int], api.get())
在代码中产生了很多视觉噪音,如果 self.foo
的类型已经定义,这也是多余的。此外,如果变量具有自定义类型,则必须在运行时导入该类型,以免程序崩溃,因此不能将其放入存根文件中,并且会更频繁地遇到循环导入的问题。
我更愿意使用
self.foo = cast(api.get())
来找出 self.foo
是什么类型,并将 API 调用的结果转换为该类型。
我不知道如何在运行时实现这个而不需要无休止的 hack,但是类型检查器会查看 AST,所以这应该是可能的?
谢谢!
我发帖后不久我意识到:
self.foo = cast(Any, api.get())
确实not将self.foo
的类型更改为list[int] | Any
,正如我所期望的那样,但达到了我想要的结果(不更改类型)。
也许这就是解决方案。