Condividi tramite


Modificare il codice Python e usare IntelliSense

Poiché si impiega molto tempo per lo sviluppo nell'editor di codice, il supporto di Python in Visual Studio offre funzionalità che consentono di essere più produttivi. Le funzionalità includono l'evidenziazione della sintassi IntelliSense, il completamento automatico, la Guida alla firma, le sostituzioni dei metodi, la ricerca e la navigazione.

L'editor di codice è integrato con la finestra interattiva in Visual Studio. Mentre si lavora, è facile scambiare codice tra le due finestre. Per altre informazioni, vedere Passaggio 3 dell'esercitazione: Usare la finestra Interattiva REPL e Usare il comando Interattivo - Invia a Interattivo.

La struttura consente di concentrarsi su sezioni specifiche del codice. Per la documentazione generale sulla modifica del codice in Visual Studio, vedere Funzionalità dell'editor di codice.

Il Visualizzatore oggetti di Visual Studio consente di esaminare le classi Python definite in ogni modulo e le funzioni definite in tali classi. È possibile accedere a questa funzionalità nel menu Visualizza o usando i tasti di scelta rapida CTRL+ALT+J.

Usare le funzionalità di IntelliSense

IntelliSense fornisce completamenti, guida alla firma, informazioni rapide e colorazione del codice. Visual Studio 2017 versioni 15.7 e successive supportano anche hint di tipo.

Per migliorare le prestazioni, IntelliSense in Visual Studio 2017 versione 15.5 e precedenti dipende da un database di completamento generato per ogni ambiente Python nel progetto. Potrebbe essere necessario aggiornare il database se si aggiungono, rimuovono o aggiornano pacchetti. Lo stato del database viene visualizzato nella finestra Ambienti Python (complementare a Esplora soluzioni) nella scheda IntelliSense . Per altre informazioni, vedere Informazioni di riferimento sulla finestra Ambienti.

Visual Studio 2017 versione 15.6 e successive usa un mezzo diverso per fornire completamenti IntelliSense che non dipendono dal database.

Completamenti

I completamenti vengono visualizzati come istruzioni, identificatori e altre parole che possono essere immesse in modo appropriato nel percorso corrente nell'editor. IntelliSense popola l'elenco di opzioni in base al contesto e filtra elementi non corretti o distratti. I completamenti vengono spesso attivati immettendo istruzioni diverse (ad esempio import) e operatori (incluso un punto), ma possono essere visualizzati in qualsiasi momento selezionando la scelta rapida da tastiera CTRL+J +Space.

Screenshot che mostra il completamento dei membri tramite IntelliSense nell'editor di Visual Studio.

Quando un elenco di completamento è aperto, è possibile cercare il completamento desiderato usando i tasti di direzione, il mouse o continuando a digitare. Quando si digitano più lettere, l'elenco viene filtrato ulteriormente per mostrare i completamenti probabili. È anche possibile usare i tasti di scelta rapida, ad esempio:

  • Digitare lettere che non sono all'inizio del nome, ad esempio 'parse' per trovare 'argparse'
  • Digitare solo lettere che si trovano all'inizio delle parole, ad esempio 'abc' per trovare 'AbstractBaseClass' o 'air' per trovare 'as_integer_ratio'
  • Ignorare le lettere, ad esempio 'b64' per trovare 'base64'

Ecco alcuni esempi:

Screenshot che mostra il completamento dei membri con il filtro nell'editor di Visual Studio.

I completamenti dei membri vengono visualizzati automaticamente quando si digita un punto dopo una variabile o un valore, insieme ai metodi e agli attributi dei tipi potenziali. Se una variabile può essere più di un tipo, l'elenco include tutte le possibilità di tutti i tipi. Vengono visualizzate informazioni aggiuntive per indicare quali tipi supportano ogni completamento. Quando tutti i tipi possibili supportano un completamento, non viene visualizzata alcuna annotazione.

Screenshot che mostra il completamento dei membri in più tipi nell'editor di Visual Studio.

Per impostazione predefinita, i membri "dunder" (membri che iniziano e terminano con un doppio carattere di sottolineatura) non vengono visualizzati. In generale, tali membri non devono essere accessibili direttamente. Se è necessario usare una dunder, digitare il doppio carattere di sottolineatura iniziale per aggiungere questi completamenti all'elenco:

Screenshot che mostra i tipi di completamento dei membri privati dunder nell'editor di Visual Studio.

Le import istruzioni e from ... import visualizzano un elenco di moduli che possono essere importati. L'istruzione from ... import produce un elenco che include membri che possono essere importati dal modulo specificato.

Screenshot che mostra l'importazione e il completamento dell'importazione nell'editor di Visual Studio.

Le raise e except visualizzano elenchi di classi che probabilmente sono tipi di errore. L'elenco potrebbe non includere tutte le eccezioni definite dall'utente, ma consente di trovare rapidamente le eccezioni predefinite appropriate:

Screenshot che mostra il completamento delle eccezioni nell'editor di Visual Studio.

La selezione del simbolo @ (@) avvia un decoratore e mostra i potenziali decoratori. Molti di questi elementi non sono utilizzabili come decoratori. Controllare la documentazione della libreria per determinare quale decorator usare.

Screenshot che mostra il completamento dell'elemento Decorator nell'editor di Visual Studio.

Per altre informazioni, vedere Opzioni - risultati di completamento.

Annotazioni di tipo

Gli hint di tipo sono disponibili in Visual Studio 2017 versione 15.7 e successive.

"Suggerimenti di tipo" in Python 3.5+ (PEP 484 (python.org) è una sintassi di annotazione per funzioni e classi, che indica i tipi di argomenti, valori restituiti e attributi di classe. IntelliSense visualizza le indicazioni di tipo quando si passa sopra con il cursore del mouse sulle chiamate di funzione, sugli argomenti e sulle variabili che hanno tali annotazioni.

Nell'esempio seguente la Vector classe viene dichiarata come tipo List[float]e la scale funzione contiene hint di tipo sia per gli argomenti che per il valore restituito. Passando il puntatore del mouse su una chiamata a tale funzione vengono visualizzati gli hint di tipo:

Screenshot che mostra come passare il puntatore del mouse su una chiamata di funzione per visualizzare gli hint di tipo.

Nell'esempio seguente è possibile vedere come vengono visualizzati gli attributi annotati della Employee classe nel popup di completamento di IntelliSense per un attributo:

Screenshot che mostra il completamento di IntelliSense per una classe con suggerimenti di tipo.

È anche utile convalidare gli hint di tipo in tutto il progetto perché gli errori normalmente non vengono visualizzati fino al runtime. A questo scopo, Visual Studio integra lo strumento Mypy standard del settore tramite il comando di menu di scelta rapida Python>Esegui Mypy in Esplora soluzioni:

Screenshot che mostra i comandi di linting disponibili per i progetti Python in Esplora soluzioni.

Eseguendo il comando, verrà richiesto di installare il pacchetto Mypy, se necessario. Visual Studio esegue quindi Mypy per convalidare gli hint di tipo in ogni file Python nel progetto. Gli errori vengono visualizzati nella finestra Elenco errori di Visual Studio. La selezione di un elemento nella finestra consente di passare alla riga appropriata nel codice.

Come esempio semplice, la definizione di funzione seguente contiene un hint di tipo per indicare che l'argomento input è di tipo str, mentre la chiamata a tale funzione tenta di passare un numero intero:

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

commas_to_colons(1)

L'uso del comando Esegui Mypy su questo codice genera l'errore seguente:

Screenshot che mostra il risultato di esempio della validazione dei suggerimenti di tipo da parte di Mypy.

Annotazioni

Per le versioni di Python precedenti alla 3.5, Visual Studio visualizza anche hint di tipo forniti tramite Typeshed stub file (.pyi). È possibile usare i file stub quando non si vogliono includere hint di tipo direttamente nel codice o per creare hint di tipo per una libreria che non li usa direttamente. Per altre informazioni, vedere Creare stub per i moduli Python nel wiki del progetto Mypy.

Visual Studio attualmente non supporta hint di tipo nei commenti.

Guida alla firma

Quando si scrive codice che chiama una funzione, viene visualizzata la Guida alla firma quando si digita la parentesi (di apertura . Visualizza la documentazione e le informazioni sui parametri disponibili. È possibile accedere alla funzione di aiuto firme con i tasti di scelta rapida Ctrl+Shift+Space all'interno di una chiamata a funzione. Le informazioni visualizzate dipendono dalle stringhe della documentazione nel codice sorgente della funzione, ma include tutti i valori predefiniti.

Screenshot che mostra l'aiuto per la firma nell'editor di Visual Studio.

Suggerimento

Per disabilitare la Guida alla firma, passare a Strumenti>Opzioni>Editor di testo>Python>Generale. Deselezionare la casella di controllo Completamento dell'istruzione>Informazioni sui parametri.

Informazioni rapide

Quando si passa il puntatore del mouse su un identificatore, viene visualizzata una descrizione comando Informazioni rapide. A seconda dell'identificatore, le informazioni rapide potrebbero visualizzare i valori o i tipi potenziali, qualsiasi documentazione disponibile, tipi restituiti e percorsi di definizione:

Screenshot che mostra le informazioni rapide nell'editor di Visual Studio.

Colorazione del codice

La colorazione del codice usa informazioni dall'analisi del codice a variabili di colore, istruzioni e altre parti del codice. Le variabili che fanno riferimento a moduli o classi possono essere visualizzate in un colore diverso rispetto alle funzioni o ad altri valori. I nomi dei parametri possono essere visualizzati in un colore diverso rispetto alle variabili locali o globali. Per impostazione predefinita, le funzioni non vengono visualizzate in grassetto.

Screenshot che mostra la colorazione del codice e della sintassi nell'editor di Visual Studio.

Per personalizzare i colori, passare a Strumenti>Opzioni>Ambiente>Tipi di carattere e colori. Nell'elenco Visualizza elementi modificare le voci Python desiderate:

Screenshot che mostra le opzioni Tipi di carattere e colori in Visual Studio.

Inserire frammenti di codice

I frammenti di codice sono porzioni di codice che possono essere inserite nei file utilizzando una scelta rapida da tastiera e selezionando Tab. È anche possibile usare i comandi Modifica>IntelliSense>Inserisci Frammento e Racchiudi con, selezionare Python e quindi selezionare il frammento desiderato.

Ad esempio, class è un collegamento per un frammento di codice che inserisce una definizione di classe. Il frammento di codice viene visualizzato nell'elenco di completamento automatico quando si digita class:

Screenshot che mostra un frammento di codice per la scorciatoia della classe.

La selezione di Tab genera il resto della classe. È quindi possibile digitare sopra il nome e l'elenco delle basi, spostarsi tra i campi evidenziati con Tab e selezionare INVIO per iniziare a digitare il corpo.

Screenshot che mostra le evidenziazioni sulle aree di un frammento di codice da completare.

Quando si usa il comando di menu Modifica>intelliSense>Inserisci frammento di codice , selezionare prima Python e quindi selezionare il frammento di codice desiderato:

Screenshot che mostra come selezionare un frammento di codice tramite il comando Inserisci frammento di codice.

Il comando Edit>IntelliSense>Surround With inserisce la selezione corrente nell'editor di testo all'interno di un elemento strutturale scelto. Si supponga di avere un frammento di codice simile all'esempio seguente:

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

Selezionando questo codice e scegliendo il comando Racchiudi con viene visualizzato un elenco di frammenti di codice disponibili. Scegliendo def dall'elenco dei frammenti di codice, il codice selezionato viene inserito all'interno di una definizione di funzione. È possibile usare il tasto TAB per spostarsi tra il nome della funzione evidenziato e gli argomenti:

Screenshot che mostra come usare il comando di racchiusura per i frammenti di codice.

Esaminare i frammenti di codice disponibili

È possibile visualizzare i frammenti di codice disponibili in Gestione frammenti di codice. Accedere a questa funzionalità da Strumenti>Gestione frammenti di codice e selezionare Python come linguaggio:

Screenshot che mostra la Gestione frammenti di codice in Visual Studio.

Per creare frammenti personalizzati, vedere Procedura dettagliata: Creare un frammento di codice.

Scrivi un frammento di codice eccezionale che vuoi condividere, puoi pubblicarlo in un gist e segnalarlo. Potrebbe essere possibile includerlo in una versione futura di Visual Studio.

Il supporto di Python in Visual Studio offre diversi modi per spostarsi rapidamente all'interno del codice, incluse le librerie per le quali è disponibile il codice sorgente. È possibile trovare librerie con codice sorgente per la barra di spostamento, Vai a definizione, Vai a e Trova tutti i riferimenti. È anche possibile usare Il Visualizzatore oggetti di Visual Studio.

La barra di spostamento viene visualizzata nella parte superiore di ogni finestra dell'editor e include un elenco a due livelli di definizioni. L'elenco a discesa a sinistra contiene definizioni di classi e funzioni di primo livello nel file corrente. Nell'elenco a discesa a destra viene visualizzato un elenco di definizioni all'interno dell'ambito visualizzato a sinistra. Mentre ci si sposta nell'editor, gli elenchi vengono aggiornati per visualizzare il contesto corrente ed è anche possibile selezionare una voce da questi elenchi per passare direttamente a.

screenshot che mostra la barra di spostamento nell'editor di Visual Studio.

Suggerimento

Per nascondere la barra di spostamento, passare a Strumenti>Opzioni>Editor di testo Python>>Generale e deselezionare labarra di spostamento>.

Vai a definizione

Il comando Vai a definizione passa rapidamente dall'uso di un identificatore (ad esempio un nome di funzione, una classe o una variabile) alla posizione della definizione del codice sorgente. Per richiamare il comando, fare clic con il pulsante destro del mouse su un identificatore e scegliere Vai a definizione o posizionare il cursore nell'identificatore e selezionare F12. Il comando funziona tra il codice e le librerie esterne in cui è disponibile il codice sorgente. Se il codice sorgente della libreria non è disponibile, Vai a definizione passa all'istruzione pertinente import per un riferimento a un modulo o visualizza un errore.

Screenshot che mostra il comando Vai a definizione in Visual Studio.

Vai a

Il comando Modifica>Vai a (CTRL+, ) visualizza una casella di ricerca nell'editor in cui è possibile digitare qualsiasi stringa e visualizzare le possibili corrispondenze nel codice che definisce una funzione, una classe o una variabile contenente tale stringa. Questa caratteristica offre una capacità simile a Vai a definizione, ma senza dover trovare un identificatore.

Per passare alla definizione dell'identificatore, fare doppio clic su qualsiasi nome o selezionare il nome con i tasti di direzione seguiti da Invio.

Screenshot che mostra il comando Vai A in Visual Studio.

Trova tutti i riferimenti

La funzionalità Trova tutti i riferimenti è un modo utile per individuare dove qualsiasi identificatore specificato è definito e usato, incluse le importazioni e le assegnazioni. Per richiamare il comando, fare clic con il pulsante destro del mouse su un identificatore e scegliere Trova tutti i riferimenti oppure posizionare il cursore nell'identificatore e selezionare MAIUSC+F12. Se si fa doppio clic su un elemento nell'elenco, si passa alla relativa posizione.

Screenshot che visualizza i risultati di Trova Tutti i Riferimenti in Visual Studio.