Quali sono i migliori strumenti per lanalisi statica di Python?


Migliore risposta

Esistono più strumenti per eseguire lanalisi statica per la programmazione Python.

  1. Pylint → Uno strumento open source
  2. Kiuwan → Strumento commerciale
  3. Pyflakes e così via.

Ho usato Pylint e Kiuwan.

Pylint può trovare le seguenti cose:

  • controllare la lunghezza del codice di riga,
  • controllare se i nomi delle variabili sono ben formati secondo il tuo standard di codifica
  • controllare se vengono usati i moduli importati
  • controllare se le interfacce dichiarate sono veramente implementate
  • controllare se i moduli sono importati

Kiuwan può supportare le seguenti serie di regole:

  • Evita di codificare indirizzi IP
  • Codice duplicato
  • Evita di utilizzare parametri modificabili predefiniti
  • Evita di utilizzare Funzione exec ()
  • Evita assegnazioni a Vero o Falso
  • Evita confronti concatenati contenenti operatore di uguaglianza
  • Evita funzioni troppo complesse
  • Apri file usin g listruzione with
  • Evita di usare moduli deprecati
  • Il metodo \_init\_ non può essere un generatore

È unopzione migliore per verificare la presenza di più strumenti e decidere quale strumento si adatta perfettamente al requisito.

Risposta

Uso pyflakes per il controllo del codice allinterno di Vim e lo trovo molto utile. Tuttavia, pylint è migliore per il controllo del codice pre-commit. Dovresti avere due livelli di controllo del codice: errori che non possono essere commessi e avvisi che sono odori di codice ma possono essere commessi. Puoi configurare questo e molte altre cose con pylint.

A volte potresti pensare che pylint sia troppo esigente: potrebbe lamentarsi per qualcosa che pensi sia perfettamente a posto. Pensaci due volte. Molto spesso, ho scoperto che lavviso che ho trovato eccessivamente prudente qualche mese fa era in realtà un ottimo consiglio.

Quindi la mia risposta è che pylint è affidabile e robusto, e non sono a conoscenza di un codice molto migliore analizzatore.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *