Python и Intellisense - PullRequest
       111

Python и Intellisense

67 голосов
/ 25 мая 2009

Есть ли в Python эквивалент 'intellisense'?

Возможно, мне не следует это признавать, но я считаю, что интеллигентность действительно ускоряет «фазу открытия» изучения нового языка. Например, переход с VB.net на C # был легким, потому что фрагменты и intellisense помогли мне в этом.

Ответы [ 16 ]

32 голосов
/ 25 мая 2009

Эта запись в блоге объясняет настройку Vim в качестве Python IDE, он описывает функциональность, подобную Intellisense:

Python Intellsense
(источник: dispatched.ch )

Это стандартно в Vim 7. Существует множество других очень полезных плагинов для разработки на Python, таких как Pyflakes , который проверяет код на лету и Python_fn.vim который обеспечивает функциональность для манипулирования отступами и кодами Python.

23 голосов
/ 06 августа 2011

Посмотрите на инструменты Python для Visual Studio , они обеспечивают завершение кода (a.k.a intellisense), отладку и т. Д. *

Ниже приведен скриншот интерактивной оболочки для python, показывающий завершение кода.

enter image description here

19 голосов
/ 25 мая 2009

Среда PyDev для Eclipse имеет интеллигентную функциональность для Python. Поддержание открытой интерактивной консоли вместе с функцией help(item) очень полезно.

15 голосов
/ 25 мая 2009

Динамическая природа языка усложняет анализ типов автозаполнения, поэтому качество различных средств завершения, упомянутых выше, сильно варьируется.

Хотя это не совсем то, что вы просили, оболочка ipython очень хороша для исследовательской работы. Когда я работаю с новым модулем, я склонен тянуть его в ipython и тыкать в него. Перепробовав большинство решений, упомянутых выше (хотя прошло уже много лет с Wing), средства завершения ipython неизменно становятся более надежными. Два основных инструмента для исследования - это заполнение табуляции и добавление вопросительного знака к имени модуля / функции, чтобы получить текст справки, например ::

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
9 голосов
/ 25 мая 2009

Я настоятельно рекомендую PyDev . В Pydev вы можете поместить используемый вами модуль в Forced Buildins , в основном завершение кода будет работать лучше, чем в других IDE, таких как KOMODO EDIT.

Также я думаю, IPython очень полезен. Поскольку в IPython это «время выполнения», завершение кода в IPython ничего не пропустит.

8 голосов
/ 25 мая 2009

Редактор IDLE , поставляемый с Python, имеет функцию intellisense, которая автоматически обнаруживает импортированные модули, функции, классы и атрибуты.

7 голосов
/ 06 июня 2013

PyCharm - лучшая Python IDE с поддержкой IntelliSense.

5 голосов
/ 25 мая 2009

Я бы порекомендовал Komodo Edit . Тем не менее, я должен кое-что отметить: вы не получите ничего более хорошего, чем то, к чему вы привыкли, в Visual Studio C # intellisense. Динамический характер Python может затруднить выполнение подобных функций.

5 голосов
/ 25 мая 2009

Wingware, например, реализует автозаполнение, см. http://wingware.com/doc/edit/auto-completion.

4 голосов
/ 25 мая 2009

ctags + vim тоже работает нормально, хотя и не так мощно, как intellisense. Используя это с ipython, вы можете получить интерактивную справку, автоматическое завершение имени и т. Д. Но это, очевидно, ориентировано на командную строку.

Eclipse + pydev тоже может это сделать, но у меня нет опыта: http://pydev.sourceforge.net/

...