Как радон рассчитывает сложность класса cycloMati c? - PullRequest
0 голосов
/ 24 января 2020

Я запустил radon cc -s myFile.py, чтобы вычислить для него цикло-метрику. Я вставил часть результата ниже

...
(more stuff)
C 37:0 MyClass - A (3)
M 40:4 MyClass.letter - A (2)
M 47:4 MyClass.fullname - A (2)
M 58:4 MyClass.__str__ - A (1)
...
(more stuff)

В документации для Радона не указано, как метри c будет рассчитано специально для класса. Для меня не имеет смысла, чтобы класс имел сложность cyclomati c, так как он не представляет поток кода сам по себе, как метод или функция, и даже если бы это было так, я ожидал бы Cyclomati c сложность для класса быть суммой СС для его методов, что здесь явно не так.

1 Ответ

1 голос
/ 25 января 2020

Вот реализация: https://github.com/rubik/radon/blob/f11f905d3c1b9a300dcb811ddf714902e087beee/radon/visitors.py#L122 -L283

Похоже, что есть настройка, которая заставляет радон начинать считать с 0, а не с 1, хотя это не ясно из их документации как вызвать это

Не похоже, что это стандартная форма подсчета сложности, такая как МакКейба , но немного более практичная для python (выбирая, например, лечить try блоков специально)

...