Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Для измерения цикломатической сложности существует хороший инструмент, доступный в traceback.org . Страница также дает хороший обзор того, как интерпретировать результаты.
+1 для pylint. Это сильно в проверке соблюдения кодирования стандартов (быть им PEP8 или вариант Вашей собственной организации), который может в конце помогать уменьшить цикломатическую сложность.
Для статического анализа существует pylint и pychecker. Лично я использую pylint, поскольку это, кажется, более всесторонне, чем pychecker.
Для цикломатической сложности можно попробовать эта программа жемчуга или этот статья , которая представляет программу Python, чтобы сделать тот же
Благодаря Pydev, Вы можете интегрировать pylint в Eclipse IDE действительно легко и добираться, код сообщают каждый раз, когда Вы сохранили измененный файл.
Существует инструмент, названный CloneDigger, который помогает Вам найти подобные фрагменты кода.
Pycana работает как шарм, когда вам нужно разобраться в новом проекте!
PyCAna (Python Code Analyzer) - это причудливое название для простого анализатора кода для Python, который создает диаграмму классов после выполнения вашего {{1} } код.
Посмотрите, как это работает: http://pycana.sourceforge.net/
вывод: