Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Complessità ciclomatica: metodi?

DGreat (1250 points)
10 14 28
in Programmare in Python by (1.3k points)
Se sviluppassi funzioni e metodi anzichè inserirli direttamente nel main, la complessità ciclomatica migliorerebbe, peggiorerebbe o sarebbe identica?

2 Answers

Best answer
E
Edward (25950 points)
3 4 172
by (26.0k points)
selected by
La complessita ciclomatica aumenta ogni volta che entri in un if, o in un ciclo.

Se al posto di fare quell'if/ciclo chiami una funzione, la complessità ciclomatica diminuisce. Aumentano però leggermente i tempi del programma, che deve fare la chiamata alla funzione (parliamo di micro/nano secondi, ma se la ripeti tante volte potrebbe farsi sentire).
AndreaGasparini (18850 points)
7 12 120
by (18.9k points)
edited by

La complessità ciclomatica viene calcolata per ogni funzione del tuo programma e per la valutazione viene presa in considerazione quella più elevata (quindi più complessa).

Il valore aumenta in base al numero di confronti (if) e cicli (while/for) che effettui e al loro livello di annidamento. Perciò ovviamente scrivere più funzioni che separano le operazioni e svolgono sottoproblemi più piccoli ti aiuterà ad abbassare questo parametro, ma attenzione a non esagerare perché effettuare un numero molto elevato di chiamate ad una funzione può far calare drasticamente l'efficienza.

Installando la libreria radon (conda install -c conda-forge radon) puoi controllare la complessità del tuo programma allo stesso modo in cui viene fatto dal grader dell'homework. Ti basta eseguire questo comando dalla console: radon cc -a -s --show-closures nomeProgramma.py