蟒蛇/ Pycharm,Ctrl-Space键不弹出代码完成(Python/Pycharm, Ctr

2019-07-19 01:06发布

我有以下文件。 为什么当我按下代码完成不运行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. ,代码完成不弹出,为什么呢?

Answer 1:

你看的编辑器代码完成设置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-in​​formation.html



Answer 2:

添加来自JetBrains公司回应:@CrazyCoder就在那里。 问题是,我们不能推断出函数的正确的返回类型“urllib.request.urlopen()”,因为它的实现使用一些动态的技巧,我们不能静态地处理,具体为:

通常情况下,我们应对困难的情况下,像在python-骨架,使用外部注解,但它不包含“urllib.request里”模块类型的提示呢。 此外,在PyCharm的即将到来的版本中,我们打算切换到聚集在typeshed项目批注的集合。 它的发展更加积极,并且已经包含了一些注解“的urllib”。 从中受益,你只需要带注释的地方在你的解释路径滴“的urllib”包,使PyCharm能找到各自的.pyi存根。



Answer 3:

检查IDE是否处于省电模式。 如果是的话,没有代码完成过程或任何其他后台进程作品

这表明它在状态栏在IDE的底部



Answer 4:

@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



文章来源: Python/Pycharm, Ctrl-Space does not bring up code completion