Modifier le code PythonEdit Python code

Comme vous passez beaucoup de votre temps de développement dans l’éditeur de code, la prise en charge de Python dans Visual Studio fournit plusieurs fonctionnalités pour améliorer la productivité.Because you spend much of your development time in the code editor, Python support in Visual Studio provides functionality to help you be more productive. Ces fonctionnalités comprennent la mise en surbrillance de la syntaxe IntelliSense, la saisie semi-automatique, l’aide de signature, les substitutions de méthode, la recherche et la navigation.Features include IntelliSense syntax highlighting, auto-completion, signature help, method overrides, search, and navigation.

L’éditeur est également intégré à la fenêtre interactive dans Visual Studio, ce qui facilite l’échange de code entre les deux.The editor is also integrated with the Interactive window in Visual Studio, making it easy to exchange code between the two. Pour plus d’informations, consultez Étape 3 du tutoriel : Utiliser la fenêtre REPL interactive et Utiliser la fenêtre interactive - Commande Envoyer vers Interactive.See Tutorial Step 3: Use the Interactive REPL window and Use the Interactive window - Send to Interactive command for details.

Icône représentant une caméra pour les vidéosmovie camera icon for video Regardez une vidéo (Microsoft Virtual Academy) pour obtenir une démonstration de la modification du code Python (2 min30s).Watch a video (Microsoft Virtual Academy) for a demonstration of editing Python code (2m 30s).

Pour vous documenter sur la modification de code dans Visual Studio, consultez Fonctionnalités de l’éditeur de code.For general documentation on editing code in Visual Studio, see Features of the code editor. Consultez également Mode Plan, qui vous permet de rester concentré sur certaines sections de votre code.Also see Outlining, which helps you stay focused on particular sections of your code.

Vous pouvez également utiliser l’Explorateur d’objets de Visual Studio (Affichage > Autres fenêtres > Explorateur d’objets ou Ctrl+W > J) pour l’inspection des classes Python définies dans chaque module et les fonctions définies dans ces classes.You can also use the Visual Studio Object Browser (View > Other Windows > Object Browser or Ctrl+W > J) for inspecting Python classes defined in each module and the functions defined in those classes.

IntelliSenseIntelliSense

IntelliSense fournit les saisies semi-automatiques, l’assistance pour la signature, Info express et la coloration du code.IntelliSense provides completions, signature help, quick info, and code coloring. Visual Studio 2017 version 15.7 et les versions ultérieures prennent également en charge les affinages de type.Visual Studio 2017 versions 15.7 and later also support type hints.

Pour améliorer le niveau de performance, IntelliSense dans Visual Studio 2017 version 15.5 et versions antérieures dépend d’une base de données de saisie semi-automatique qui est générée pour chaque environnement Python dans votre projet.To improve performance, IntelliSense in Visual Studio 2017 version 15.5 and earlier depends on a completion database that's generated for each Python environment in your project. Il est possible que les bases de données doivent être actualisées si vous ajoutez, supprimez ou mettez à jour des packages.Databases may need refreshing if you add, remove, or update packages. Leur état s’affiche sous l’onglet IntelliSense de la fenêtre Environnements Python (de la même famille que l’Explorateur de solutions) (consultez Référence sur la fenêtre Environnements).Database status is shown in the Python Environments window (a sibling of Solution Explorer) on the IntelliSense tab (see Environments window reference).

Visual Studio 2017 versions 15.6 et ultérieures utilise un autre moyen pour fournir les saisies semi-automatiques IntelliSense qui ne dépendent pas de la base de données.Visual Studio 2017 version 15.6 and later uses a different means to provide IntelliSense completions that are not dependent on the database.

Saisies semi-automatiquesCompletions

Les saisies semi-automatiques s’affichent sous forme d’instructions, d’identificateurs et d’autres mots qui peuvent tout à fait être saisis à l’emplacement actuel dans l’éditeur.Completions appear as statements, identifiers, and other words that may be appropriately entered at the current location in the editor. Ce qui apparaît dans la liste est basé sur le contexte et est filtré pour omettre les options inappropriées ou inexactes.What's shown in the list is based on context and is filtered to omit incorrect or distracting options. Les saisies semi-automatiques sont souvent déclenchées en tapant diverses instructions (comme import) et différents opérateurs (dont un point), mais vous pouvez les afficher à tout moment en tapant Ctrl+J > espace.Completions are often triggered by typing different statements (such as import) and operators (including a period), but you can have them appear at anytime by typing Ctrl+J > Space.

Saisie semi-automatique de membres

Lorsqu’une liste de saisies semi-automatiques est ouverte, vous pouvez rechercher la proposition que vous souhaitez grâce aux touches de direction, à la souris ou en continuant de taper.When a completion list is open, you can search for the completion you want using the arrow keys, the mouse, or by continuing to type. À mesure que vous tapez, la liste est filtrée pour afficher les propositions les plus probables.As you type more letters, the list is further filtered to show likely completions. Vous pouvez également utiliser des raccourcis tels que :You can also use shortcuts such as:

  • Taper des lettres qui ne sont pas au début du nom, tel que « parse » pour rechercher « argparse ».Typing letters that are not at the start of the name, such as 'parse' to find 'argparse'
  • Taper uniquement des lettres qui sont au début des mots, tel que « abc » pour rechercher « AbstractBaseClass » ou « air » pour rechercher « as_integer_ratio ».Typing only letters that are at the start of words, such as 'abc' to find 'AbstractBaseClass' or 'air' to find 'as_integer_ratio'
  • Ignorer des lettres, tel que « b64 » pour rechercher « base64 ».Skipping letters, such as 'b64' to find 'base64'

Voici quelques exemples :Some examples:

Saisie semi-automatique de membres avec filtrage

Les saisies semi-automatiques de membres apparaissent automatiquement quand vous tapez un point après une variable ou une valeur, ainsi que les méthodes et attributs des types potentiels.Member completions appear automatically when you type a period after a variable or value, along with the methods and attributes of the potential types. Si une variable peut être plus d’un type, la liste inclut toutes les possibilités de tous les types, avec des informations supplémentaires pour indiquer quels types prennent en charge chaque proposition.If a variable could be more than one type, the list includes all possibilities from all types, with extra information to indicate which types support each completion. Lorsqu’une saisie semi-automatique est prise en charge par tous les types possibles, elle est affichée sans annotation.Where a completion is supported by all possible types, it is shown without annotation.

Saisie semi-automatique de membres sur plusieurs types

Par défaut, les membres commençant et se terminant par un trait de soulignement double ne sont pas affichés.By default, "dunder" members (members beginning and ending with a double underscore) are not shown. En règle générale, vous ne devez pas accéder à ces membres directement.In general, such members should not be accessed directly. Toutefois, si vous en avez besoin, la saisie du trait de soulignement double de début permet d’ajouter ces saisies semi-automatiques à la liste :If you need one, however, typing the leading double underscore adds these completions to the list:

Saisie semi-automatique de membres privés

Les instructions import et from ... import affichent une liste des modules qui peuvent être importés.The import and from ... import statements display a list of modules that can be imported. Dans le cas de from ... import, la liste inclut les membres qui peuvent être importés à partir du module spécifié.With from ... import, the list includes members that can be imported from the specified module.

Importation de saisie semi-automatique

Les instructions raise et except affichent les listes des classes susceptibles d’être des types d’erreurs.The raise and except statements display lists of classes likely to be error types. Les exceptions définies par l’utilisateur peuvent ne pas toutes faire partie de cette liste, mais elle vous permet de trouver les exceptions intégrées appropriées rapidement :The list may not include all user-defined exceptions, but helps you find suitable built-in exceptions quickly:

Saisie semi-automatique d’exceptions

Taper @ lance un décorateur et affiche les décorateurs potentiels.Typing @ starts a decorator and shows potential decorators. La plupart de ces éléments ne sont pas utilisables en tant que décorateurs ; consultez la documentation de la bibliothèque pour déterminer lequel utiliser.Many of these items aren't usable as decorators; check the library documentation to determine which to use.

Saisie semi-automatique de décorateurs

Tip

Vous pouvez configurer le comportement des saisies semi-automatiques via Outils > Options > Éditeur de texte > Python > Avancé.You can configure the behavior of completions through Tools > Options > Text Editor > Python > Advanced. Parmi les options proposées, Filter list based on search string (Filtrer la liste en fonction de la chaîne de recherche) applique un filtre aux propositions de saisie semi-automatique à mesure que vous tapez (option sélectionnée par défaut) et La saisie semi-automatique des membres affiche l’intersection des membres affiche uniquement les saisies semi-automatiques prises en charge par tous les types possibles (option non sélectionnée par défaut).Among these, Filter list based on search string applies filtering of completion suggestions as you type (default is checked), and Member completion displays intersection of members shows only completions that are supported by all possible types (default is unchecked). Consultez Options - Résultats de la saisie semi-automatique.See Options - completion results.

Affinages de typeType hints

Visual Studio 2017 versions 15.7 et ultérieures.Visual Studio 2017 version 15.7 and later.

Les « affinages de type » dans Python 3.5+ (PEP 484, python.org) font référence à une syntaxe d’annotation pour les fonctions et classes qui indiquent les types des arguments, des valeurs de retour et des attributs de classe."Type hints" in Python 3.5+ (PEP 484 (python.org) is an annotation syntax for functions and classes that indicate the types of arguments, return values, and class attributes. IntelliSense affiche des affinages de type quand vous pointez sur des appels de fonctions, des arguments et des variables dotés de ces annotations.IntelliSense displays type hints when you hover over functions calls, arguments, and variables that have those annotations.

Dans l’exemple ci-dessous, la classe Vector est déclarée en tant que List[float] et la fonction scale contient les affinages de type de ses arguments et de sa valeur de retour.In the example below, the Vector class is declared as List[float], and the scale function contains type hints for both its arguments and return value. Quand vous pointez sur un appel à cette fonction, les affinages de type apparaissent :Hovering over a call to that function shows the type hints:

Pointage sur un appel de fonction pour afficher les affinages de type

Dans l’exemple suivant, vous pouvez voir comment les attributs annotés de la classe Employee apparaissent dans la fenêtre contextuelle de complétion IntelliSense associée à un attribut :In the following example, you can see how the annotated attributes of the Employee class appear in the IntelliSense completion popup for an attribute:

Complétion IntelliSense illustrant les affinages de type

De plus, il s’avère utile de valider les affinages de type tout au long de votre projet, car ce n’est normalement qu’au moment de l’exécution que les erreurs apparaissent.It's also helpful to validate type hints throughout your project, because errors won't normally appear until run time. Pour cela, Visual Studio intègre l’outil standard MyPy par le biais de la commande de menu contextuel Python > Exécuter Mypy dans l’Explorateur de solutions :For this purpose, Visual Studio integrates the industry standard MyPy tool through the context menu command Python > Run Mypy in Solution Explorer:

Exécuter la commande de menu contextuel MyPy dans l’Explorateur de solutions

Quand vous exécutez la commande, vous êtes invité à installer le package mypy, si nécessaire.Running the command prompts you to install the mypy package, if needed. Visual Studio exécute ensuite mypy pour valider les affinages de type dans chaque fichier Python du projet.Visual Studio then runs mypy to validate type hints in every Python file in the project. Les erreurs apparaissent dans la fenêtre Visual Studio Liste d’erreurs.Errors appear in the Visual Studio Error List window. Quand vous sélectionnez un élément dans la fenêtre, vous accédez à la ligne appropriée dans votre code.Selecting an item in the window navigates to the appropriate line in your code.

À titre de simple exemple, la définition de fonction suivante contient un affinage de type pour signaler que l’argument input est de type str, alors que l’appel à cette fonction tente de passer un entier :As a simple example, the following function definition contains a type hint to indicate that the input argument is type str, whereas the call to that function attempts to pass an integer:

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

commas_to_colons(1)

L’utilisation de la commande Exécuter Mypy sur ce code génère l’erreur suivante :Using the Run Mypy command on this code generates the following error:

Exemple de résultat de la validation des affinages de type par mypy

Tip

Pour les versions de Python antérieures à la version 3.5, Visual Studio affiche également les affinages de type que vous fournissez par le biais de fichiers stub (.pyi).For versions of Python before 3.5, Visual Studio also displays type hints that you supply through stub files (.pyi). Vous pouvez utiliser des fichiers stub chaque fois que vous ne souhaitez pas inclure d’indicateurs de type directement dans votre code, ou que vous souhaitez créer des affinages de type pour une bibliothèque qui ne les utilise pas directement.You can use stub files whenever you don't want to include type hints directly in your code, or when you want to create type hints for a library that doesn't use them directly. Pour plus d’informations, consultez Create Stubs for Python Modules (Créer des stubs pour des modules Python) dans le wiki du projet mypy.For more information, see Create stubs for Python modules in the mypy project wiki.

Visual Studio ne prend pas en charge les affinages de type dans les commentaires.At present, Visual Studio doesn't support type hints in comments.

Assistance pour la signatureSignature help

Quand vous écrivez du code qui appelle une fonction, l’aide de signature apparaît lorsque vous tapez le caractère ( ouvrant et affiche les informations sur le paramètre et la documentation disponibles.When writing code that calls a function, signature help appears when you type the opening ( and displays available documentation and parameter information. Vous pouvez également les faire apparaître avec Ctrl+Maj+Espace à l’intérieur d’un appel de fonction.You can also make it appear with Ctrl+Shift+Space inside a function call. Les informations affichées dépendent des chaînes de documentation du code source de la fonction, mais elles incluent toutes les valeurs par défaut.The information displayed depends on the documentation strings in the function's source code, but includes any default values.

Assistance pour la signature

Tip

Pour désactiver l’assistance pour la signature, accédez à Outils > Options > Éditeur de texte > Python > Général et désactivez Saisie semi-automatique des instructions > Informations sur les paramètres.To disable signature help, go to Tools > Options > Text Editor > Python > General and clear Statement completion > Parameter information.

Info expressQuick info

Placer le pointeur de la souris sur un identificateur permet d’afficher une info-bulle Info express.Hovering the mouse pointer over an identifier displays a Quick Info tooltip. En fonction de l’identificateur, Info express peut afficher les valeurs ou les types potentiels, la documentation disponible, les types de retour et les emplacements de définition :Depending on the identifier, Quick Info may display the potential values or types, any available documentation, return types, and definition locations:

Info express

Coloration du codeCode coloring

La coloration du code utilise les informations issues de l’analyse du code pour les variables de couleurs, les instructions et d’autres parties de votre code.Code coloring uses information from code analysis to color variables, statements, and other parts of your code. Par exemple, les variables qui font référence à des modules ou à des classes peuvent être affichées dans une couleur différente des fonctions ou d’autres valeurs, et les noms de paramètres s’affichent dans une couleur différente des variables locales ou globales.For example, variables that refer to modules or classes may be shown in a different color than functions or other values, and parameter names appear in a different color than local or global variables. (Par défaut, les fonctions ne sont pas affichées en gras) :(By default, functions are not shown in bold):

Coloration du code

Pour personnaliser les couleurs, accédez à Outils > Options > Environnement > Polices et couleurs et modifiez les entrées Python dans la liste Afficher les éléments :To customize the colors, go to Tools > Options > Environment > Fonts and Colors and modify the Python entries in the Display items list:

Options Polices et couleurs

Tip

Pour désactiver la coloration du code, accédez à Outils > Options > Éditeur de texte > Python > Avancé et désactivez Options diverses > Color names based on type (Colorer les noms en fonction du type).To disable code coloring, go to Tools > Options > Text Editor > Python > Advanced and clear Miscellaneous Options > Color names based on type. Consultez Options - Options diverses.See Options - Miscellaneous options.

Extraits de codeCode snippets

Les extraits de code sont des fragments de code qui peuvent être insérés dans vos fichiers en tapant un raccourci et en appuyant sur Tab ou à l’aide des commandes Modifier > IntelliSense > Insérer un extrait de code et Entourer de, en sélectionnant Python, puis l’extrait de code requis.Code snippets are fragments of code that can be inserted into your files by typing a shortcut and pressing Tab, or using the Edit > IntelliSense > Insert Code Snippet and Surround With commands, selecting Python, then selecting the desired snippet.

Par exemple, class est un raccourci pour un extrait de code qui insère une définition de classe.For example, class is a shortcut for a code snippet that inserts a class definition. L’extrait de code s’affiche dans la liste de saisie semi-automatique lorsque vous tapez class :You see the snippet appear in the auto-completion list when you type class:

Raccourci d’extrait de code pour la classe

Appuyez sur Tab pour générer le reste de la classe.Pressing Tab generates the rest of the class. Vous pouvez ensuite taper le nom et la liste de bases, passer d’un champ en surbrillance à l’autre avec la touche Tab, puis appuyer sur Entrée pour commencer à taper le corps du texte.You can then type over the name and bases list, moving between the highlighted fields with Tab, then press Enter to begin typing the body.

Mise en évidence des zones d’un extrait de code que vous devez remplir

Quand vous utilisez la commande de menu Modifier > IntelliSense > Insérer un extrait de code, sélectionnez d’abord Python, puis un extrait de code :When you use the Edit > IntelliSense > Insert Code Snippet menu command, you first select Python, then select a snippet:

Sélection d’un extrait de code via la commande Insérer un extrait de code

De la même façon, la commande Modifier > IntelliSense > Entourer de place la sélection actuelle dans l’éditeur de texte au sein d’un élément structurel choisi.The Edit > IntelliSense > Surround With command, similarly, places the current selection in the text editor inside a chosen structural element. Par exemple, supposons que vous ayez un peu de code comme suit :For example, suppose you had a bit of code like the following:

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

Le fait de sélectionner ce code et de choisir la commande Entourer de affiche la liste des extraits de code disponibles.Selecting this code and choosing the Surround With command displays a list of available snippets. Le fait de choisir def dans la liste place le code sélectionné au sein d’une définition de fonction et vous pouvez utiliser la touche Tab pour naviguer entre le nom et les arguments de la fonction sélectionnée :Choosing def from the list places the selected code within a function definition, and you can use the Tab key to navigate between the highlighted function name and arguments:

Utilisation de la commande Entourer de pour les extraits de code

Examiner les extraits de code disponiblesExamine available snippets

Vous pouvez voir les extraits de code disponibles dans le Gestionnaire des extraits de code, que vous ouvrez avec la commande de menu Outils > Gestionnaire des extraits de code et en sélectionnant Python comme langage :You can see the available code snippets in the Code Snippets Manager, opened by using Tools > Code Snippets Manager menu command and selecting Python as the language:

Gestionnaire des extraits de code

Pour créer vos propres extraits de code, consultez Procédure pas à pas : créer un extrait de code.To create your own snippets, see Walkthrough: Create a code snippet.

Si vous écrivez un extrait de code de qualité et que vous souhaitez le partager, n’hésitez pas à le publier dans un contenu Gist et informez-nous.If you write a great code snippet that you'd like to share, feel free to post it in a gist and let us know. Nous pourrons peut-être l’ajouter dans une prochaine version de Visual Studio.We may be able to include it in a future release of Visual Studio.

La prise en charge de Python dans Visual Studio fournit plusieurs options pour naviguer rapidement dans votre code, notamment des bibliothèques pour lesquelles le code source est disponible : la barre de navigation, Atteindre la définition, Naviguer vers et Rechercher toutes les références.Python support in Visual Studio provides several means to quickly navigate within your code, including libraries for which source code is available: the navigation bar, Go To Definition, Navigate To, and Find All References. Vous pouvez également utiliser l’Explorateur d’objets de Visual Studio.You can also use the Visual Studio Object Browser.

La barre de navigation s’affiche en haut de chaque fenêtre de l’éditeur et inclut une liste de définitions à deux niveaux.The navigation bar is displayed at the top of each editor window and includes a two-level list of definitions. La liste déroulante de gauche contient des définitions de fonction et de classe de niveau supérieur du fichier actuel. La liste déroulante de droite affiche une liste de définitions dans l’étendue illustrée à gauche.The left drop-down contains top-level class and function definitions in the current file; the right drop-down displays a list of definitions within the scope shown in the left. À mesure de vos déplacements dans l’éditeur, les listes sont mises à jour pour afficher votre contexte actuel. En outre, vous pouvez sélectionner une entrée à partir de ces listes pour y accéder directement.As you move around in the editor, the lists update to show your current context, and you can also select an entry from these lists to jump directly to.

Barre de navigation

Tip

Pour masquer la barre de navigation, accédez à Outils > Options > Éditeur de texte > Python > Général et désactivez Paramètres > Barre de navigation.To hide the navigation bar, go to Tools > Options > Text Editor > Python > General and clear Settings > Navigation bar.

Atteindre la définitionGo To Definition

Atteindre la définition permet de passer rapidement de l’utilisation d’un identificateur (p. ex. un nom de fonction, une classe ou une variable) au code source dans lequel il est défini.Go To Definition quickly jumps from the use of an identifier (such as a function name, class, or variable), to the source code where it's defined. Pour l’appeler, vous devez cliquer avec le bouton droit sur un identificateur et sélectionner Atteindre la définition ou placer le signe insertion dans l’identificateur et appuyer sur F12.You invoke it by right-clicking an identifier and selecting Go To Definition or, by placing the caret in the identifier and pressing F12. Cela fonctionne dans l’ensemble de votre code et des bibliothèques externes sous réserve que ce code source soit disponible.It works across your code and external libraries provided that source code is available. Si le code source de la bibliothèque n’est pas disponible, Atteindre la définition passe à l’instruction import appropriée pour une référence de module ou affiche une erreur.If library source code is not available, Go To Definition jumps to the relevant import statement for a module reference, or displays an error.

Atteindre la définition

La commande Modifier > Naviguer vers (Ctrl+,) affiche une zone de recherche dans l’éditeur dans laquelle vous pouvez taper n’importe quelle chaîne et voir les correspondances possibles dans votre code qui définit une fonction, une classe ou une variable contenant cette chaîne.The Edit > Navigate To command (Ctrl+,) displays a search box in the editor where you can type any string and see possible matches in your code that defines a function, class, or variable containing that string. Cette fonctionnalité permet de bénéficier d’une fonction similaire à Atteindre la définition, mais sans avoir à localiser une utilisation d’un identificateur.This feature provides a similar capability as Go To Definition but without having to locate a use of an identifier.

Vous pouvez accéder à la définition de cet identificateur en double-cliquant sur n’importe quel nom ou en effectuant une sélection avec les touches de direction et en appuyant sur Entrée.Double-clicking any name, or selecting with arrow keys and Enter, navigates to the definition of that identifier.

Boîte de dialogue Naviguer vers

Rechercher toutes les référencesFind All References

Rechercher toutes les références est une option utile pour déterminer où un identificateur donné est à la fois défini et utilisé, y compris les importations et les affectations.Find All References is a helpful way of discovering where any given identifier is both defined and used, including imports and assignments. Pour l’appeler, vous devez cliquer avec le bouton droit sur un identificateur et sélectionner Rechercher toutes les références ou placer le signe insertion dans l’identificateur et appuyer sur Maj+F12.You invoke it by right-clicking an identifier and selecting Find All References, or by placing the caret in the identifier and pressing Shift+F12. Double-cliquer sur un élément de la liste permet d’accéder à son emplacement.Double-clicking an item in the list navigates to its location.

Résultats de Rechercher toutes les références

Voir aussiSee also