我有以下文件。 为什么当我按下代码完成不运行Ctrl-Space
后的“河”? 它说,在一个红色的盒子“没有建议”。
(该方案,因为它是运行和推出:200)
__author__ = 'hape'
import urllib.request
import urllib.response
print("Starting")
r = urllib.request.urlopen("http://www.python.org")
r. <------------ No code completion, why not?!
print (r.getcode())
后r.
,代码完成不弹出,为什么呢?
你看的编辑器代码完成设置Pycharm页面?
http://www.jetbrains.com/pycharm/webhelp/editor-code-completion.html
启用智能型代码完成?
http://www.jetbrains.com/pycharm/webhelp/smart-type-code-completion-completing-code-based-on-type-information.html
添加来自JetBrains公司回应:@CrazyCoder就在那里。 问题是,我们不能推断出函数的正确的返回类型“urllib.request.urlopen()”,因为它的实现使用一些动态的技巧,我们不能静态地处理,具体为:
通常情况下,我们应对困难的情况下,像在python-骨架,使用外部注解,但它不包含“urllib.request里”模块类型的提示呢。 此外,在PyCharm的即将到来的版本中,我们打算切换到聚集在typeshed项目批注的集合。 它的发展更加积极,并且已经包含了一些注解“的urllib”。 从中受益,你只需要带注释的地方在你的解释路径滴“的urllib”包,使PyCharm能找到各自的.pyi存根。
检查IDE是否处于省电模式。 如果是的话,没有代码完成过程或任何其他后台进程作品
这表明它在状态栏在IDE的底部
@CrazyCoder是right.Fow现在,Pycharm不kown类型r
如果你真的很喜欢自动完成,首先得到的类型r
使用IPython的或调试
# IPython
In [1]: import urllib.request
In [2]: r = urllib.request.urlopen("http://www.python.org")
In [3]: type(r)
Out[3]: http.client.HTTPResponse
然后用Python3注解
r: http.client.HTTPResponse = urllib.request.urlopen("http://www.python.org")
r.
现在,你可以得到
蟒蛇标注为http.client.HTTPResponse