Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La reutilización del código existente y la actualización de código son tareas comunes para los desarrolladores. Es posible que quiera refactorizar el código existente para otro propósito y ahorrar tiempo sin escribir todo el código nuevo. Es posible que quiera limpiar el código para quitar elementos no utilizados o actualizar importaciones y métodos para que estén actualizados con versiones recientes.
Visual Studio proporciona varios comandos para ayudarle a transformar y limpiar automáticamente el código fuente de Python:
- Renombrar cambia el nombre de una clase, un método o una variable seleccionados.
- Agregar importación proporciona una etiqueta inteligente para agregar una importación que falta.
- Quitar importaciones sin usar elimina las importaciones sin usar.
Prerrequisitos
- Visual Studio. Para instalar el producto, siga los pasos descritos en Instalación de Visual Studio.
- Acceso a un proyecto de código de Python con código existente.
Cambiar el nombre de una clase, un método o una variable
Puede usar el comando Rename para cambiar el nombre de un identificador específico, incluida una clase, un método o una variable. Visual Studio admite la actualización de todas las instancias del identificador o solo las instancias específicas que indique.
En los pasos siguientes se muestra cómo usar el comando Rename en el código.
En el código, haga clic con el botón derecho en el identificador cuyo nombre desea cambiar y seleccione Cambiar nombre. También puede colocar el cursor sobre un identificador y seleccionar Editar>Refactorizar>Renombrar en el menú, o usar el método abreviado de teclado Ctrl+R.
En el cuadro de diálogo Cambiar nombre , escriba el nuevo nombre para el identificador seguido de Entrar:
Agrega una instrucción de importación
Si tiene identificadores en el código que faltan definiciones o información de tipos auxiliares, Visual Studio puede ayudarle a corregir el problema. Cuando coloca el símbolo de intercalación en un identificador que carece de información, Visual Studio muestra una etiqueta inteligente (bombilla) a la izquierda del código. La etiqueta enumera los comandos para agregar las instrucciones necesarias import o from ... import para el identificador correspondiente.
Los pasos siguientes muestran cómo trabajar con la etiqueta inteligente para agregar importaciones en el código.
En el código, coloque el cursor sobre un identificador para el cual Visual Studio muestra el icono de la bombilla. En este ejemplo, la etiqueta inteligente se muestra para la llamada al módulo matemático:
En el menú etiqueta inteligente, seleccione el comando para agregar la información necesaria del módulo o del tipo al archivo de código. En este ejemplo, se selecciona el comando para agregar una instrucción
import math.Visual Studio ofrece
importfinalizaciones para paquetes y módulos de nivel superior en el proyecto actual y en la biblioteca estándar. Visual Studio también ofrecefrom ... importfinalizaciones para submódulos y subpaquetes y miembros del módulo. Las finalizaciones incluyen funciones, clases o datos exportados.Después de seleccionar una opción, confirme que el cambio esperado se realiza en el archivo.
Visual Studio agrega la
importinstrucción en la parte superior del archivo de código después de otras importaciones o en una instrucción existentefrom ... importsi el mismo módulo ya se ha importado. En este ejemplo, laimport mathinstrucción se agrega en la parte superior del archivo después de las demás importaciones:
Visual Studio intenta filtrar los miembros que no están definidos en un módulo. Un ejemplo es un módulo importado en otro módulo que no depende del módulo de importación. Muchos módulos usan la import sys instrucción en lugar de from xyz import sys. No ve una finalización para importar el sys módulo desde otros módulos aunque falten __all__ miembros que excluyan el sys módulo.
Del mismo modo, Visual Studio filtra las funciones que se importan desde otros módulos o el espacio de nombres integrado. Si un módulo importa la settrace función desde el sys módulo, en teoría, puede importar la función desde ese módulo. Sin embargo, el mejor enfoque es usar la import settrace from sys instrucción directamente, por lo que Visual Studio ofrece específicamente esa instrucción.
Por último, supongamos que normalmente se excluye un módulo, pero tiene otros valores que se incluyen como un nombre asignado con un valor en el módulo. Visual Studio sigue excluyendo la importación. Este comportamiento supone que el valor no se debe exportar porque otro módulo lo define. Es probable que otra asignación sea un valor ficticio que tampoco se exporte.
Quitar importaciones sin usar
Al escribir código, es fácil terminar con import instrucciones para módulos que no se usan en absoluto. Dado que Visual Studio analiza el código, puede determinar automáticamente si se necesita una import instrucción examinando si el nombre importado se usa dentro del ámbito después de que se produzca la instrucción.
En los pasos siguientes se muestra cómo quitar las importaciones sin usar en el código.
En el código, coloque el símbolo de intercalación en una
importinstrucción para la que Visual Studio muestra la etiqueta inteligente (bombilla). En este ejemplo, la etiqueta inteligente se muestra para los módulos no usados binascii, array y glob:
Seleccione la opción Quitar todas las importaciones sin usar o Quitar importación sin usar para quitar solo el módulo seleccionado.
Después de seleccionar una opción, confirme que los cambios se realizan en el archivo. En este ejemplo, Visual Studio quita los tres módulos no usados: binascii, array y glob.
Consideraciones al usar comandos de refactorización
Antes de usar los comandos de refactorización, revise las consideraciones siguientes.
Después de ejecutar un comando de refactorización, puede revertir los cambios mediante el comando Editar>deshacer . El comando Cambiar nombre ofrece una característica de vista previa , por lo que puede ver los cambios antes de aplicarlos.
Visual Studio no tiene en cuenta el flujo de control en el código. Si usa un identificador antes de que la definición de compatibilidad esté presente en el código, como una
importinstrucción, Visual Studio sigue procesando el identificador tal como se usa. Visual Studio espera encontrar definiciones auxiliares para identificadores antes de realizar llamadas y asignaciones.Visual Studio omite todas las
from __future__instrucciones de importación. Estas declaraciones son importaciones realizadas dentro de una definición de clase o mediante instruccionesfrom ... import *.