我经常遇到这样的情况,我使用 exec 进行分配,如下所示:
...
exec(
"someClassInstance = someMapper({someInfo})".format(someInfo=someInfo),
globals(),
)
someClassInfo
的实例在哪里SomeClass
。然后我使用someClassInstance
,像这样:
...
someVar = someClassInstance.someMethod() # type: ignore
所有这些都很好,我完成了我想要的。
但是,从阅读的角度和 IDE(在我的例子中是 emacs+pyright)的角度来看, someClassInstance 的(非运行时)类型是未知的。
所以,我添加了“# type:ignore”。
但是,相反,我想以某种方式使用 python 3 的类型提示来让它知道 someClassInstance 是 SomeClass 类型(或其祖先之一)。
那可能吗?