Python and Intellisense

The dynamic nature of the language tends to make autocomplete type analysis difficult, so the quality of the various completion facilities menitoned above varies wildly.

While it's not exactly what you asked for, the ipython shell is very good for exploratory work. When I'm working with a new module, I tend to pull it into ipython and poke at it. Having tried most of the solutions mentioned above (though it's been years since Wing), ipython's completion facilities are consistently more reliable. The two main tools for exploration are tab complete and appending a question mark to the module/function name to get the help text, e.g.:

In [1]: import sqlalchemy

In [2]: sqlalchemy.s #tab completion
sqlalchemy.schema    sqlalchemy.select    sqlalchemy.sql       sqlalchemy.subquery

In [2]: sqlalchemy.select? #Shows docstring

In [3]: sqlalchemy.select?? #Shows method source

In [4]: edit sqlalchemy.select #opens the source in an editor

The PyDev environment for Eclipse has intellisense-like functionality for Python. Keeping an interactive console open, along with the help(item) function is very helpful.


This blog entry explains setting Vim up as a Python IDE, he covers Intellisense-like functionality:

Python Intellsense
(source: dispatched.ch)

This is standard in Vim 7. There are a number of other very useful plugins for python development in Vim, such as Pyflakes which checks code on the fly and Python_fn.vim which provides functionality for manipulating python indentation & code blocks.


Have a look at python tools for visual studio, they provide code completion (a.k.a intellisense), debugging etc ...

Below is a screenshot of the interactive shell for python showing code completion.

enter image description here