Compartir vía


Refactorización del código de Python en Visual Studio

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:

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.

  1. 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.

  2. En el cuadro de diálogo Cambiar nombre , escriba el nuevo nombre para el identificador seguido de Entrar:

    Captura de pantalla que muestra cómo especificar un nombre diferente para un identificador en Visual Studio 2022.

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.

  1. 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:

    Captura de pantalla que muestra la etiqueta inteligente de un identificador que necesita una instrucción de importación agregada en Visual Studio 2022.

  2. 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 import finalizaciones para paquetes y módulos de nivel superior en el proyecto actual y en la biblioteca estándar. Visual Studio también ofrece from ... import finalizaciones para submódulos y subpaquetes y miembros del módulo. Las finalizaciones incluyen funciones, clases o datos exportados.

  3. Después de seleccionar una opción, confirme que el cambio esperado se realiza en el archivo.

    Visual Studio agrega la import instrucción en la parte superior del archivo de código después de otras importaciones o en una instrucción existente from ... import si el mismo módulo ya se ha importado. En este ejemplo, la import math instrucción se agrega en la parte superior del archivo después de las demás importaciones:

    Captura de pantalla que muestra la instrucción import agregada después de ejecutar el comando desde la etiqueta inteligente en Visual Studio 2022.

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.

  1. En el código, coloque el símbolo de intercalación en una import instrucció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:

    Captura de pantalla que muestra cómo acceder a las opciones para quitar las importaciones sin usar en Visual Studio 2022.

  2. Seleccione la opción Quitar todas las importaciones sin usar o Quitar importación sin usar para quitar solo el módulo seleccionado.

  3. 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.

    Captura de pantalla que muestra los resultados del uso del comando Quitar todas las importaciones sin usar en Visual Studio 2022.

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 import instrucció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 *.