Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Reutilizar código existente e atualizar código são tarefas comuns para os programadores. Podes querer refatorar código existente para outro propósito e poupar tempo não escrevendo todo o código novo. Podes querer limpar o teu código para remover itens não usados ou atualizar importações e métodos para que estejam atualizados com as versões mais recentes.
O Visual Studio fornece vários comandos para o ajudar a transformar e limpar automaticamente o seu código-fonte em Python:
- Renomear altera o nome de uma classe, método ou variável selecionada.
- Adicionar importação fornece uma smart tag para adicionar uma importação em falta.
- Remover importações não utilizadas elimina importações não usadas.
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, método ou variável
Pode usar o comando Renomear para alterar o nome de um identificador específico, incluindo uma classe, método ou variável. O Visual Studio suporta a atualização de todas as instâncias do identificador ou apenas das instâncias específicas que indica.
Os passos seguintes mostram como usar o comando Renomear no seu código.
No seu código, clique com o botão direito no identificador que quer renomear e selecione Renomear. Também pode colocar o caret num identificador e selecionar Editar>Refatorar>Renomear dentro do menu, ou usar o atalho de teclado Ctrl+R.
No diálogo Renomear , escreva o novo nome do identificador seguido de Enter:
Adicionar uma declaração de importação
Se tiver identificadores no seu código que não têm definições ou informações de tipo de suporte, o Visual Studio pode ajudá-lo a corrigir o problema. Quando colocas o caret num identificador que não tem informação, o Visual Studio mostra uma etiqueta inteligente (lâmpada) à esquerda do código. A etiqueta lista comandos para adicionar as instruções necessárias import ou from ... import para o identificador correspondente.
Os passos seguintes mostram como trabalhar com a etiqueta inteligente para adicionar importações no seu código.
No seu código, coloque o caret num identificador para o qual o Visual Studio exibe a etiqueta inteligente (lâmpada). Neste exemplo, a smart tag é exibida durante a chamada ao módulo matemático:
No menu de etiquetas inteligentes, selecione o comando para adicionar a informação necessária do módulo ou tipo ao seu ficheiro de código. Neste exemplo, o comando para adicionar a
import mathinstrução é selecionado.O Visual Studio oferece
importcompletações para pacotes e módulos de topo no projeto atual e na biblioteca padrão. O Visual Studio também oferecefrom ... importcompletações para submódulos, subpacotes e membros de módulos. As completações incluem funções, classes ou dados exportados.Depois de selecionar uma opção, confirme que a alteração esperada foi feita no seu ficheiro.
O Visual Studio adiciona a
importinstrução no topo do teu ficheiro de código após outras importações, ou numa instrução existentefrom ... importse o mesmo módulo já estiver importado. Neste exemplo, aimport mathinstrução é adicionada no topo do ficheiro após as outras importações:
O Visual Studio tenta filtrar membros que não estão definidos num módulo. Um exemplo é um módulo importado para outro módulo que não é filho do módulo que o importa. Muitos módulos usam a import sys afirmação em vez de from xyz import sys. Não vês uma finalização para a importação do módulo sys de outros módulos, mesmo que faltem com um membro __all__ que exclua o módulo sys.
De forma semelhante, o Visual Studio filtra funções que são importadas de outros módulos ou do namespace incorporado. Se um módulo importar a função settrace do módulo sys, em teoria, pode importar a função deste módulo. No entanto, a melhor abordagem é usar a import settrace from sys declaração diretamente, por isso o Visual Studio oferece especificamente essa declaração.
Finalmente, suponha que um módulo é normalmente excluído, mas tem outros valores incluídos, como um nome atribuído a um valor no módulo. O Visual Studio continua a excluir a importação. Este comportamento assume que o valor não deve ser exportado porque outro módulo o define. É provável que uma outra atribuição seja um valor fictício que também não é exportado.
Remover importações não utilizadas
Quando escreves código, é fácil acabar com import instruções para módulos que não estão a ser usadas de todo. Como o Visual Studio analisa o seu código, pode determinar automaticamente se uma import instrução é necessária ao verificar se o nome importado é usado dentro do âmbito após a ocorrência da instrução.
Os passos seguintes mostram como remover importações não utilizadas no seu código.
No seu código, coloque o caret numa
importinstrução para a qual o Visual Studio exibe a etiqueta inteligente (lâmpada). Neste exemplo, a smart tag mostra os módulos não utilizados binascii, array e glob:
Selecione a opção Remover todas as importações não utilizadas ou Remover importação não utilizada para remover apenas o módulo selecionado.
Depois de selecionar uma opção, confirme que as alterações foram feitas ao seu ficheiro. Neste exemplo, o Visual Studio remove os três módulos não utilizados: binascii, array e glob.
Considerações ao utilizar comandos de refatoração
Antes de usar os comandos de refatoração, reveja as seguintes considerações.
Depois de executares um comando de refatoração, podes reverter as alterações usando o comando Editar>Desfazer . O comando Renomear oferece uma funcionalidade de Pré-visualização , para que possa ver as alterações antes de serem aplicadas.
O Visual Studio não tem em conta o fluxo de controlo no teu código. Se usar um identificador antes de a definição de suporte estar presente no código, como uma
importinstrução, o Visual Studio continua a processar o identificador conforme utilizado. O Visual Studio espera encontrar definições de suporte para identificadores antes de fazer chamadas e atribuições.O Visual Studio ignora todas
from __future__as instruções de importação. Estas instruções são importações realizadas dentro de uma definição de classe ou utilizandofrom ... import *instruções.