Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Reutilização de código existente e código de atualização são tarefas comuns para desenvolvedores. Talvez você queira refatorar o código existente para outra finalidade e economizar tempo não escrevendo todo o novo código. Talvez você queira limpar seu código para remover itens não utilizados ou atualizar importações e métodos para que eles estejam atualizados com versões recentes.
O Visual Studio fornece vários comandos para ajudá-lo a transformar e limpar automaticamente o código-fonte do Python:
- Renomear altera o nome de uma classe, método ou variável selecionado.
- Adicionar importação fornece uma etiqueta inteligente para adicionar uma importação ausente.
- Remover importações não utilizados exclui importações não utilizados.
Pré-requisitos
- Visual Studio. Para instalar o produto, siga as etapas em Instalar o Visual Studio.
- Acesso a um projeto de código python com código existente.
Renomear uma classe, um método ou uma variável
Você pode usar o comando Renomear para alterar o nome de um identificador específico, incluindo uma classe, um método ou uma variável. O Visual Studio dá suporte à atualização de todas as instâncias do identificador ou apenas às instâncias específicas que você indicar.
As etapas a seguir mostram como usar o comando Renomear em seu código.
Em seu código, clique com o botão direito do mouse no identificador que você deseja renomear e selecione Renomear. Você também pode colocar o cursor em um identificador e selecionar Editar>Refatorar>Renomear no menu, ou usar o atalho do teclado Ctrl+R.
Na caixa de diálogo Renomear, digite o novo nome para o identificador seguido por Enter:
Adicionar uma instrução de importação
Se você tiver identificadores em seu código que estão faltando definições ou que dão suporte a informações de tipo, o Visual Studio poderá ajudá-lo a corrigir o problema. Quando você coloca o cursor em um identificador que não tem informações, o Visual Studio mostra um ícone inteligente (lâmpada) à esquerda do código. A marca lista os comandos para adicionar as declarações necessárias import ou from ... import para o identificador correspondente.
As etapas a seguir mostram como trabalhar com o "smart tag" para adicionar imports em seu código.
Em seu código, coloque o cursor em um identificador para o qual o Visual Studio exibe a marca inteligente (lâmpada). Neste exemplo, a etiqueta inteligente é exibida para a chamada ao módulo de matemática:
No menu de marca inteligente, selecione o comando para adicionar o módulo ou as informações de tipo necessárias ao arquivo de código. Neste exemplo, o comando para adicionar a
import mathinstrução é selecionado.O Visual Studio oferece conclusões para pacotes
importe módulos de nível superior no projeto atual e na biblioteca padrão. O Visual Studio também oferece conclusõesfrom ... importpara submódulos e subpacotes e membros do módulo. As conclusões incluem funções, classes ou dados exportados.Depois de selecionar uma opção, confirme se a alteração esperada foi feita no arquivo.
O Visual Studio adiciona a
importinstrução na parte superior do arquivo de código após outras importações ou em uma instrução existentefrom ... importse o mesmo módulo já estiver importado. Neste exemplo, a instruçãoimport mathé adicionada na parte superior do arquivo após as outras importações:
O Visual Studio tenta filtrar membros que não estão definidos em um módulo. Um exemplo é como um módulo importado para outro módulo que não é filho do módulo de importação. Muitos módulos usam a import sys instrução em vez de from xyz import sys. Você não verá uma conclusão para importar o sys módulo de outros módulos, mesmo que os módulos estejam sem um __all__ membro que exclua o sys módulo.
Da mesma forma, o Visual Studio filtra funções importadas de outros módulos ou do namespace interno. Se um módulo importar a função settrace do módulo sys, você poderá, em teoria, importar a função desse módulo. No entanto, a melhor abordagem é usar a import settrace from sys instrução diretamente, portanto, o Visual Studio oferece especificamente essa instrução.
Por fim, suponha que um módulo seja normalmente excluído, mas ele tenha outros valores incluídos como um nome atribuído com um valor no módulo. O Visual Studio ainda exclui a importação. Esse comportamento pressupõe que o valor não deve ser exportado porque outro módulo o define. É provável que outra atribuição seja um valor fictício que também não seja exportado.
Remover importações não utilizados
Quando você escreve código, é fácil terminar com import declarações para módulos que não estão sendo usados. Como o Visual Studio analisa seu código, ele pode determinar automaticamente se uma instrução import é necessária examinando se o nome importado é usado dentro do escopo após a instrução ocorrer.
As etapas a seguir mostram como remover importações não utilizados em seu código.
Em seu código, coloque o cursor em uma instrução
importpara a qual o Visual Studio exibe a marca inteligente (lâmpada). Neste exemplo, a tag inteligente é exibida para os módulos não utilizados binascii, array e glob.
Selecione a opção Remover todas as importações não utilizadas ou Remover a importação não utilizada para remover apenas o módulo selecionado.
Depois de selecionar uma opção, confirme se as alterações são feitas no arquivo. Neste exemplo, o Visual Studio remove os três módulos não utilizados: binascii, matriz e glob.
Considerações ao usar comandos de refatoração
Antes de usar os comandos de refatoração, examine as considerações a seguir.
Depois de executar um comando de refatoração, você pode reverter as alterações usando o comando Editar>Desfazer . O comando Renomear oferece um recurso de visualização , para que você possa ver as alterações antes que elas sejam aplicadas.
O Visual Studio não conta com o fluxo de controle em seu código. Se você usar um identificador antes que a definição de suporte esteja presente no código, como uma instrução
import, o Visual Studio ainda processará o identificador conforme usado. O Visual Studio espera encontrar definições de suporte para identificadores antes de fazer chamadas e atribuições.O Visual Studio ignora todas as
from __future__instruções de importação. Essas instruções são importações executadas dentro de uma definição de classe ou usandofrom ... import *instruções.