V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
piaochen
V2EX  ›  Python

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

  •  
  •   piaochen · 2017-07-25 16:06:49 +08:00 · 3431 次点击
    这是一个创建于 2679 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    def index(request): pass

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

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

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

    assert isinstance(value,dict)

    这样 PyCharm 就知道 value 肯定是 dict 类型,然后,所有的智能提示都出来了。我已经这么干很久了。。。
    cicaday
        6
    cicaday  
       2017-07-25 17:28:29 +08:00
    另外楼上提到的 doc string 也是可行的,如果你不介意多写点注释也是极好的。
    Betacoefficient
        7
    Betacoefficient  
       2017-07-25 17:56:37 +08:00
    楼主自学 python 用的什么教程啊,能否共享。
    XIVN1987
        8
    XIVN1987  
       2017-07-25 18:05:37 +08:00
    @cicaday
    assert 大法好,刚刚在 SublimeJEDI 中试了下确实好使,感谢!!
    cxbig
        9
    cxbig  
       2017-07-25 18:19:26 +08:00
    养成好习惯,写代码加 doc string,方便自己也方便他人。
    congeec
        10
    congeec  
       2017-07-27 00:03:09 +08:00
    动态语言的静态分析比较难,所以你知道为嘛王垠一直吹自己的 PySonar
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2709 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 10:38 · PVG 18:38 · LAX 02:38 · JFK 05:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.