如何在python中键入复合类的类型列表?
由于一些我无法控制的架构原因,我经常使用并希望完整代码完成的对象是源代码中已经存在的静态特性之上的几个特性的动态组合如何在python中键入复合类的类型列表?,python,pycharm,atom-editor,typehints,Python,Pycharm,Atom Editor,Typehints,由于一些我无法控制的架构原因,我经常使用并希望完整代码完成的对象是源代码中已经存在的静态特性之上的几个特性的动态组合 import lgb.reqs.plan # Various imports which dynamically extend the smallform import lgb_extensions.water_extras import lgb_extensions.toolkit_extras d = c.req[0] # type: lgb.reqs.plan.smal
import lgb.reqs.plan
# Various imports which dynamically extend the smallform
import lgb_extensions.water_extras
import lgb_extensions.toolkit_extras
d = c.req[0] # type: lgb.reqs.plan.smallform
d = d # type: lgb_extensions.water_extras.common
d = d # type: lgb_extensions.toolkit_extras.common
# Now I get the autocomplete on d as I type "d."
d.
我发现重新分配d
方法非常有效,但感觉不对。没有办法用元组之类的东西键入提示吗?我试过了,但没能弄明白
我发现jupyter笔记本非常适合自动完成,如果我真的需要探索未知的代码库,我会跳到ipython或笔记本会话,但在这种情况下,我非常熟悉代码库,只是希望自动完成更好,因为我永远记不清调用了什么。如果有关系的话,我大部分时间都在玩pycharm或atom游戏。如果只有几个扩展,上面的解决方案已经解决了我的问题,但是当我有10个东西扩展对象时,它就不起作用了。在我通常的情况下,我有大约20个东西扩展我想要自动完成的对象。您可以在这里使用。更重要的是,当一个名字在不同的情况下可以容纳不同的类型时
例如
这行代码很难看,大约需要800个字符才能实现,但它工作起来很漂亮。太棒了,谢谢你。
from typing import Union
a = f() # type: Union[str, int]
d. # now get autocompletion for str and int from IDEs