Существуют ли инструменты Python для статического анализа / проверки? - PullRequest
0 голосов
/ 10 августа 2010

Я никогда не был большим фанатом Python.Я выучил это для курса, в котором учитель действительно увлекался этим, но его энтузиазм так и не добрался до остальной части нашего класса, кажется: как только у нас появился шанс, мы все прыгнули на C # / Java.

В любом случае.Это не был заключительный опыт, и что меня больше всего раздражало в этом языке, так это то, что для того, чтобы узнать, сработает ли код Python, вам нужно его выполнить и рискнуть умереть на полпути из-за чего-то глупого, такого как опечатка в переменнойимя (подбрасывая NameError).Вещи, которые компиляторы для скомпилированных языков улавливают с первого взгляда, но о том, что Python не потрудится жаловаться, пока не станет слишком поздно.(Я знаю, что вы можете всегда умереть наполовину через тест с скомпилированными программами, но, по крайней мере, это не будет опечаткой.)

Я не даю ему ни секундыпока еще есть шанс, но ради следующих студентов, есть ли инструменты Python для статического анализа или проверки, которые могли бы отлавливать большинство ошибок (я понимаю, вы не можете их отловить все), которые компиляторы могли бы отлавливать во время компиляции?

Ответы [ 3 ]

7 голосов
/ 10 августа 2010

"но этот Питон не будет жаловаться, пока не станет слишком поздно"

Дело не в том, что сообщение приходит слишком поздно. Это то, что вы слишком долго ждете, чтобы использовать Python. Не вводите гору кода, а затем жалуйтесь, что один маленький кусочек плох.

  1. Использовать модульное тестирование. Напишите меньше кода перед запуском теста.

  2. Интерактивно используйте python для экспериментов. Большую часть статистической обработки можно выполнить из приглашения >>>.

  3. Не пишите длинные, похожие на основную программу скрипты. Напишите короткие сценарии - мелкими кусочками - и протестируйте маленькие кусочки.

6 голосов
/ 10 августа 2010

Посмотрите на следующие программы:

1 голос
/ 10 августа 2010

В дополнение к тем, которые упомянуты арс.

Попробуйте Pydev , в него встроен статический анализ кода. Или Pida , в котором есть несколько различных инструментов статического анализа.

Или, если вы ищете автономную библиотеку, попробуйте Rope

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...