Py学习  »  Python

exec()赋值后的Python类型暗示

Mohsen Banan • 3 年前 • 1129 次点击  

我经常会遇到这样的情况,我会和exec一起完成任务,比如:

 ...
 exec(
     "someClassInstance = someMapper({someInfo})".format(someInfo=someInfo),
     globals(),
 )

哪里 someClassInfo 是一个 SomeClass . 然后我用 someClassInstance 例如:

...
someVar = someClassInstance.someMethod()  # type: ignore

所有这些都很好,我实现了我想要的。

但是,从阅读角度和IDE(在我的例子中是emacs+pyright)角度来看,someClassInstance的(非运行时)类型是未知的。

所以,我加上“#type:ignore”。

但是,我想以某种方式使用Python3的类型暗示来让大家知道这一点 someClassInstance属于SomeClass类型(或其祖先之一)。

可能吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128072
 
1129 次点击  
文章 [ 1 ]  |  最新文章 3 年前