Compartir a través de


Edición del código de Python y uso de IntelliSense

Dado que dedica gran parte del tiempo de desarrollo en el editor de código, la compatibilidad con Python en Visual Studio proporciona funcionalidad para ayudarle a ser más productivo. Entre las características se incluyen el resaltado de sintaxis de IntelliSense, la autocompletación, la ayuda de firma, las sobrescrituras de métodos, la búsqueda y la navegación.

El editor de código se integra con la ventana interactiva en Visual Studio. A medida que trabaje, es fácil intercambiar código entre las dos ventanas. Para obtener más información, consulte Paso 3 del tutorial: Usa la ventana interactiva REPL y Usa la ventana interactiva - Enviar al comando interactivo.

La esquematización le ayuda a centrarse en secciones concretas del código. Para obtener documentación general sobre la edición de código en Visual Studio, vea Características del editor de código.

El Explorador de objetos de Visual Studio permite inspeccionar las clases de Python definidas en cada módulo y las funciones definidas en esas clases. Puede acceder a esta característica en el menú Ver o mediante el método abreviado de teclado Ctrl+Alt+J.

Uso de características de IntelliSense

IntelliSense proporciona finalizaciones, ayuda de firma, información rápida y coloreado de código. Las versiones 15.7 y posteriores de Visual Studio 2017 también admiten sugerencias de tipo.

Para mejorar el rendimiento, IntelliSense en Visual Studio 2017 versión 15.5 y versiones anteriores depende de una base de datos de finalización generada para cada entorno de Python del proyecto. Es posible que tenga que actualizar la base de datos si agrega, quita o actualiza paquetes. El estado de la base de datos se muestra en la ventana Entornos de Python (un complemento del Explorador de soluciones) en la pestaña IntelliSense . Para obtener más información, consulte Referencia de la ventana Entornos.

Visual Studio 2017, versión 15.6 y versiones posteriores, usa un medio diferente para proporcionar finalizaciones de IntelliSense que no dependen de la base de datos.

Terminaciones

Las finalizaciones aparecen como instrucciones, identificadores y otras palabras que se pueden escribir adecuadamente en la ubicación actual del editor. IntelliSense rellena la lista de opciones en función del contexto y filtra elementos incorrectos o distraídos. Las finalizaciones a menudo se desencadenan escribiendo instrucciones diferentes (como import) y operadores (incluido un punto), pero pueden aparecer en cualquier momento seleccionando el método abreviado de teclado Ctrl+J +Space.

Captura de pantalla que muestra la finalización de miembros a través de IntelliSense en el editor de Visual Studio.

Cuando se abre una lista de finalización, puede buscar la finalización que desee mediante las teclas de dirección, el mouse o si continúa escribiendo. A medida que escribe más letras, la lista se filtra aún más para mostrar las finalizaciones probables. También puede usar accesos directos como:

  • Escriba letras que no estén al principio del nombre, como "parse" para buscar "argparse".
  • Escriba solo letras que estén al principio de palabras, como "abc" para buscar "AbstractBaseClass" o "air" para buscar "as_integer_ratio".
  • Omitir letras, como "b64" para buscar "base64"

Estos son algunos ejemplos:

Captura de pantalla que muestra la finalización de miembros con filtrado en el editor de Visual Studio.

Las finalizaciones de miembros aparecen automáticamente cuando se escribe un punto después de una variable o valor, junto con los métodos y atributos de los tipos potenciales. Si una variable puede ser más de un tipo, la lista incluye todas las posibilidades de todos los tipos. Se presenta información adicional para indicar qué tipos son compatibles con cada finalización. Cuando todos los tipos posibles admiten una finalización, no se muestra ninguna anotación.

Captura de pantalla que muestra la finalización de miembros en varios tipos en el editor de Visual Studio.

De forma predeterminada, no se muestran los miembros "dunder" (miembros que comienzan y terminan con un doble carácter de subrayado). En general, no se debería acceder directamente a estos miembros. Si necesita usar un dunder, escriba el carácter de subrayado doble inicial para agregar estas finalizaciones a la lista:

Captura de pantalla que muestra los tipos de finalización de miembros dunder privados en el editor de Visual Studio.

Las import instrucciones y from ... import muestran una lista de módulos que se pueden importar. La from ... import instrucción genera una lista que incluye miembros que se pueden importar desde el módulo especificado.

Captura de pantalla que muestra la importación y la finalización de la importación en el editor de Visual Studio.

Las instrucciones raise y except muestran listas de clases que probablemente se consideren tipos de error. Es posible que la lista no incluya todas las excepciones definidas por el usuario, pero le ayuda a encontrar rápidamente excepciones integradas adecuadas:

Captura de pantalla que muestra la finalización de excepciones en el editor de Visual Studio.

@ Al seleccionar símbolo (en) se inicia un decorador y se muestran los posibles decoradores. Muchos de estos elementos no se pueden usar como decoradores. Compruebe la documentación de la biblioteca para determinar qué decorador se va a usar.

Captura de pantalla que muestra la finalización del decorador en el editor de Visual Studio.

Para obtener más información, vea Opciones: resultados de finalización.

Sugerencias de tipo

Las sugerencias de tipo están disponibles en Visual Studio 2017, versión 15.7 y posteriores.

"Sugerencias de tipo" en Python 3.5+ (PEP 484 (python.org) es una sintaxis de anotación para funciones y clases que indican los tipos de argumentos, valores devueltos y atributos de clase. IntelliSense muestra sugerencias de tipo cuando pasas el puntero sobre llamadas a funciones, argumentos y variables que tienen esas anotaciones.

En el ejemplo siguiente, la clase Vector se declara como el tipo List[float], y la función scale contiene sugerencias de tipo para sus argumentos y el valor devuelto. Al mantener el puntero sobre una llamada a esa función se muestran las sugerencias de tipo:

Captura de pantalla que muestra cómo mantener el puntero sobre una llamada de función para mostrar sugerencias de tipo.

En el ejemplo siguiente, puede ver cómo los atributos anotados de la clase Employee aparecen en la ventana emergente de finalización de IntelliSense para un atributo.

Captura de pantalla que muestra la finalización de IntelliSense para una clase con sugerencias de tipo.

También resulta útil validar las indicaciones de tipo a lo largo del proyecto porque los errores, por lo general, no aparecen hasta el tiempo de ejecución. Para ello, Visual Studio integra la herramienta Mypy estándar del sector mediante el comando de menú contextual Python>Run Mypy in Solution Explorer:

Captura de pantalla que muestra los comandos de linting disponibles para proyectos de Python en el Explorador de soluciones.

Si es necesario, al ejecutar el comando se le pedirá que instale el paquete Mypy. A continuación, Visual Studio ejecuta Mypy para validar sugerencias de tipo en todos los archivos de Python del proyecto. Los errores aparecen en la ventana Lista de errores de Visual Studio. Al seleccionar un elemento en la ventana, se desplaza a la línea adecuada del código.

Como ejemplo sencillo, la siguiente definición de función contiene una sugerencia de tipo para indicar que el input argumento es de tipo str, mientras que la llamada a esa función intenta pasar un entero:

def commas_to_colons(input: str):
    items = input.split(',')
    items = [x.strip() for x in items]
    return ':'.join(items)

commas_to_colons(1)

El uso del comando Ejecutar Mypy en este código genera el siguiente error:

Captura de pantalla que muestra el resultado de ejemplo de las sugerencias de tipo de validación de Mypy.

Nota:

Para las versiones de Python anteriores a la versión 3.5, Visual Studio también muestra sugerencias de tipo que se proporcionan a través de archivos de código auxiliar con tipos (.pyi). Puede usar archivos de código auxiliar cuando no desee incluir sugerencias de tipo directamente en el código o para crear sugerencias de tipo para una biblioteca que no las use directamente. Para obtener más información, consulte Creación de códigos auxiliares para módulos de Python en la wiki del proyecto mypy.

Visual Studio no admite en este momento sugerencias de tipo en los comentarios.

Ayuda para firmas

Al escribir código que llama a una función, la asistencia para la firma aparece al escribir el paréntesis de apertura (. Muestra la documentación y la información de parámetros disponibles. Puede acceder a la ayuda de firma con el método abreviado de teclado Ctrl+Mayús+Espacio dentro de una llamada de función. La información mostrada depende de las cadenas de documentación del código fuente de la función, pero incluye los valores predeterminados.

Captura de pantalla que muestra la ayuda de firma en el editor de Visual Studio.

Sugerencia

Para deshabilitar la ayuda de firma,vaya a >>>>General. Desactive la casilla finalización de instrucciones>Información de parámetro.

Información rápida

Al mantener el puntero del ratón sobre un identificador se muestra una descripción rápida. En función del identificador, Información Rápida puede mostrar los posibles valores o tipos, cualquier documentación disponible, tipos de retorno, y ubicaciones de definición.

Captura de pantalla que muestra la información rápida en el editor de Visual Studio.

Coloración de código

El coloreado de código utiliza información del análisis de código para colorear variables, declaraciones y otras partes de su código. Las variables que hacen referencia a módulos o clases pueden mostrarse en un color diferente de las funciones u otros valores. Los nombres de parámetro pueden aparecer en un color diferente al de las variables locales o globales. De forma predeterminada, las funciones no se muestran en negrita.

Captura de pantalla que muestra el color de código y sintaxis en el editor de Visual Studio.

Para personalizar los colores, vaya a Herramientas>Opciones>fuentes y colores del>. En la lista Mostrar elementos , modifique las entradas de Python deseadas:

Captura de pantalla que muestra las opciones Fuentes y colores en Visual Studio.

Insertar fragmentos de código

Los fragmentos de código son trozos de código que se pueden insertar en los archivos mediante un método abreviado de teclado y seleccionando Tab. También puede usar los comandos Editar>Insertar fragmento de código de>, y Rodear con, seleccione Python y, a continuación, seleccione el fragmento deseado.

Por ejemplo, class es un acceso directo para un fragmento de código que inserta una definición de clase. Verá que el fragmento de código aparece en la lista de autocompletar al escribir class:

Captura de pantalla que muestra un fragmento de código para el acceso directo de clase.

Al seleccionar Tab , se genera el resto de la clase . A continuación, puede sobrescribir el nombre y la lista de bases, desplazarse entre los campos resaltados con Tab y presionar Intro para empezar a escribir el cuerpo.

Captura de pantalla que muestra los resaltados en las áreas de un fragmento de código para que se complete.

Al usar el comando de menú Editar>IntelliSense> Insertar fragmento de código, primero seleccione Python y, a continuación, seleccione el fragmento de código deseado:

Captura de pantalla que muestra cómo seleccionar un fragmento de código mediante el comando Insertar fragmento de código.

El comando Edit>IntelliSense>Surround With coloca la selección actual en el editor de texto dentro de un elemento estructural elegido. Supongamos que tenía un fragmento de código como el ejemplo siguiente:

sum = 0
for x in range(1, 100):
    sum = sum + x

Al seleccionar este código y elegir el comando Envolver con se muestra una lista de fragmentos de código disponibles. Al elegir def en la lista de fragmentos de código se coloca el código seleccionado dentro de una definición de función. Puede usar la tecla Tab para navegar entre el nombre de función resaltado y los argumentos:

Captura de pantalla que muestra cómo usar el comando Surround With para fragmentos de código.

Examen de fragmentos de código disponibles

Puede ver los fragmentos de código disponibles en el Administrador de fragmentos de código. Acceda a esta característica desde elAdministrador de fragmentos de código> y seleccione Python como lenguaje:

Captura de pantalla que muestra el Administrador de fragmentos de código en Visual Studio.

Para crear sus propios fragmentos de código, consulte Tutorial: Creación de un fragmento de código.

Si escribe un fragmento de código excelente que le gustaría compartir, no dude en publicarlo en un gist y háganoslo saber. Es posible que podamos incluirlo en una versión futura de Visual Studio.

La compatibilidad con Python en Visual Studio proporciona varias maneras de navegar rápidamente dentro del código, incluidas las bibliotecas para las que está disponible el código fuente. Puede encontrar bibliotecas con código fuente para la Barra de Navegación, Ir a Definición, Ir a y Buscar Todas las Referencias comandos. También puede usar el Explorador de objetos de Visual Studio.

La barra de navegación se muestra en la parte superior de cada ventana del editor e incluye una lista de dos niveles de definiciones. La lista desplegable izquierda contiene definiciones de funciones y clases de nivel superior en el archivo actual. La lista desplegable derecha muestra una lista de definiciones dentro del ámbito que se muestra a la izquierda. A medida que se mueve en el editor, las listas se actualizan para mostrar el contexto actual y también puede seleccionar una entrada de estas listas para saltar directamente.

Captura de pantalla que muestra la barra de navegación en el editor de Visual Studio.

Sugerencia

Para ocultarla barra de navegación, vaya a >>>>General y desactive labarra de navegación>.

Ir a definición

El comando Ir a definición salta rápidamente del uso de un identificador (como un nombre de función, una clase o una variable) a la ubicación de la definición de código fuente. Para invocar el comando, haga clic con el botón derecho en un identificador y seleccione Ir a definición o coloque el símbolo de intercalación en el identificador y seleccione F12. El comando funciona en el código y en las bibliotecas externas en las que el código fuente está disponible. Si el código fuente de la biblioteca no está disponible, Ir a definición salta a la instrucción pertinente import para una referencia de módulo o muestra un error.

Captura de pantalla que muestra el comando Ir a definición en Visual Studio.

Ir a

El comando Editar>ir a (Ctrl+), muestra un cuadro de búsqueda en el editor donde puede escribir cualquier cadena y ver posibles coincidencias en el código que define una función, clase o variable que contiene esa cadena. Esta característica proporciona una funcionalidad similar a Ir a definición , pero sin tener que buscar un uso de un identificador.

Para ir a la definición de ese identificador, haga doble clic en cualquier nombre o seleccione el nombre con las teclas de dirección seguidos de Entrar.

Captura de pantalla que muestra el comando Ir a en Visual Studio.

Buscar todas las referencias

La característica Buscar todas las referencias es una manera útil de detectar dónde se define y usa cualquier identificador determinado, incluidas las importaciones y las asignaciones. Para invocar el comando, haga clic con el botón derecho en un identificador y seleccione Buscar todas las referencias, o coloque el cursor en el identificador y seleccione Mayús+F12. Al hacer doble clic en un elemento de la lista, se desplaza a su ubicación.

Captura de pantalla que muestra los resultados de buscar todas las referencias en Visual Studio.