对 Python IDE 自动补全功能的疑问

2017-07-25 16:06:49 +08:00
 piaochen

我本身是从事 JAVA 和 C#编程的,现在自己自学 Python, 但是有一个很大的困惑,就是 Python 的 IDE 工具,自动补全一直都感觉不好用。 我用的 PyCharm,类型很明确的时候,可以自动补全 但是 Python 大部分时候,很多变量,类型是不明确的 例如 django 的 view 中,我定义一个方法

def index(request): pass

我想看 request 中有那些变量或者方法我能用,使用 request.就.不出来了。 我现在很多类的方法什么的,用到都要去查,或者背下来。 但是我使用 java,C#等语言从来都没这样的习惯,搞得很痛苦 不知道大家有没有什么方法,还是我打开 Pycharm 的方式不对。各位请指教。

3298 次点击
所在节点    Python
10 条回复
oisc
2017-07-25 16:09:06 +08:00
TJT
2017-07-25 16:24:08 +08:00
在 doc string 中声明参数和返回值的类型,或者用楼上的方法,typing 只支持 Python 3.4+
zhengxiaowai
2017-07-25 16:29:20 +08:00
没办法,Python 是动态的,和静态不一样,IDE 做不到那么智能。

API 不熟悉的话也没什么好办法,一般就 google 或者直接看源码导出那些接口。。。。
Kilerd
2017-07-25 16:49:57 +08:00
mypy 你需要的是这个
cicaday
2017-07-25 17:27:02 +08:00
有一个投机取巧的办法,就是在调用一个变量前先确定以及肯定它的类型。比如:

assert isinstance(value,dict)

这样 PyCharm 就知道 value 肯定是 dict 类型,然后,所有的智能提示都出来了。我已经这么干很久了。。。
cicaday
2017-07-25 17:28:29 +08:00
另外楼上提到的 doc string 也是可行的,如果你不介意多写点注释也是极好的。
Betacoefficient
2017-07-25 17:56:37 +08:00
楼主自学 python 用的什么教程啊,能否共享。
XIVN1987
2017-07-25 18:05:37 +08:00
@cicaday
assert 大法好,刚刚在 SublimeJEDI 中试了下确实好使,感谢!!
cxbig
2017-07-25 18:19:26 +08:00
养成好习惯,写代码加 doc string,方便自己也方便他人。
congeec
2017-07-27 00:03:09 +08:00
动态语言的静态分析比较难,所以你知道为嘛王垠一直吹自己的 PySonar

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/377842

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX