由于一些我无法控制的架构原因,我经常使用并希望完成完整代码的对象是在源代码中已经存在的静态功能之上的几个功能的动态组合。import lgb.reqs.plan# Various imports which dynamically extend the smallformimport lgb_extensions.water_extrasimport lgb_extensions.toolkit_extrasd = c.req[0] # type: lgb.reqs.plan.smallform d = d # type: lgb_extensions.water_extras.commond = d # type: lgb_extensions.toolkit_extras.common# Now I get the autocomplete on d as I type "d."d.我发现重新分配d方法很好用,但感觉不对。有没有办法用元组或其他东西输入提示?我试过了,无法弄清楚。我发现 jupyter notebook 非常适合自动完成,如果我真的需要探索未知的代码库,我会跳到 ipython 或 notebook 会话中,但在这种情况下,我对代码库非常熟悉,只是我希望自动完成功能更好,因为我永远不记得叫什么东西了。如果重要的话,我主要使用 pycharm 或 atom。如果只有几个扩展,上面的解决方案已经解决了我的问题,但是当我有 10 个扩展对象时它不起作用。在我通常使用的情况下,我有大约 20 件事扩展了我想要自动完成的对象。
1 回答
MYYA
TA贡献1868条经验 获得超4个赞
你也许可以Union在这里使用。更多的是当一个名字在不同的情况下可以包含不同的类型。
例如。
from typing import Union
a = f() # type: Union[str, int]
d. # now get autocompletion for str and int from IDEs
添加回答
举报
0/150
提交
取消