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