Quais são as melhores ferramentas para análise estática do Python?


Melhor resposta

Existem várias ferramentas para realizar a análise estática para a programação do Python.

  1. Pylint → Uma ferramenta de código aberto
  2. Kiuwan → Ferramenta comercial
  3. Pyflakes e assim por diante.

Usei Pylint e Kiuwan.

O Pylint pode encontrar as coisas abaixo:

  • verificando o comprimento do código de linha,
  • verificando se os nomes das variáveis ​​estão bem formados de acordo com seu padrão de codificação
  • verificar se os módulos importados são usados ​​
  • verificar se as interfaces declaradas estão realmente implementadas
  • verificar se os módulos são importados

Kiuwan pode suportar os conjuntos de regras abaixo:

  • Evite codificar endereços IP
  • Código duplicado
  • Evite usar parâmetros mutáveis ​​padrão
  • Evite usar função exec ()
  • Evite atribuições para Verdadeiro ou Falso
  • Evite comparações encadeadas contendo operador de igualdade
  • Evite funções muito complexas
  • Arquivos abertos usin g the with statement
  • Evite usar módulos obsoletos
  • o método \_init\_ não pode ser um gerador

É a melhor opção para verificar a existência de várias ferramentas e decida qual ferramenta se encaixa perfeitamente no requisito.

Resposta

Eu uso pyflakes para verificação de código dentro do Vim e acho isso muito útil. Mesmo assim, o pylint é melhor para verificação de código pré-confirmação. Você deve ter dois níveis de verificação de código: erros que não podem ser confirmados e avisos que cheiram mal, mas podem ser confirmados. Você pode configurar isso e muitas outras coisas com o pylint.

Às vezes você pode achar que o pylint é muito exigente: ele pode reclamar de algo que você acha que está perfeitamente ok. Pense duas vezes sobre isso. Muitas vezes, descobri que o aviso que achei excessivamente conservador há alguns meses era, na verdade, um conselho muito bom.

Portanto, minha resposta é que o pylint é confiável e robusto, e não estou ciente de um código muito melhor analisador.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *