Réusinez le code Python dans Visual Studio

La réutilisation de code existant et le rafraîchissement du code sont des tâches courantes pour les développeurs. Vous voudrez peut-être réusiner du code existant pour un autre but et gagner du temps en n’écrivant pas tout un nouveau code. Vous voudrez peut-être nettoyer votre code pour supprimer les éléments inutilisés ou rafraîchir les importations et méthodes pour qu’ils soient à jour avec les versions récentes.

Visual Studio propose plusieurs commandes pour vous aider à transformer automatiquement et à nettoyer votre code source Python :

Prérequis

  • Visual Studio. Pour installer le produit, suivez les étapes décrites dans Installer Visual Studio.
  • Accéder à un projet de code Python avec du code existant.

Renommer une classe, une méthode ou une variable

Vous pouvez utiliser la commande Renommer pour changer le nom d’un identifiant spécifique, y compris une classe, une méthode ou une variable. Visual Studio prend en charge la mise à jour de toutes les instances de l’identifiant ou uniquement des instances spécifiques que vous indiquez.

Les étapes suivantes montrent comment utiliser la commande Renommer dans votre code.

  1. Dans votre code, cliquez avec le bouton droit sur l’identifiant que vous souhaitez renommer et sélectionnez Renommer. Vous pouvez également placer le curseur sur un identifiant et sélectionner Modifier>Réusiner>Renommer dans le menu, ou utiliser le raccourci clavier F2.

  2. Dans la boîte de dialogue Renommer, saisissez le nouveau nom pour l’identifiant et sélectionnez OK :

    Screenshot that shows how to specify a different name for an identifier in Visual Studio 2019.

  3. Dans la boîte de dialogue suivante, sélectionnez les fichiers et instances dans votre code qui doivent utiliser le nouveau nom. Vous pouvez sélectionner une instance individuelle pour prévisualiser le changement spécifique.

    Screenshot that shows how to apply the new name to specific instances of an identifier and preview the changes in Visual Studio 2019.

  4. Sélectionnez Appliquer pour modifier vos fichiers de code source.

  1. Dans votre code, cliquez avec le bouton droit sur l’identifiant que vous souhaitez renommer et sélectionnez Renommer. Vous pouvez également placer le curseur sur un identifiant et sélectionner Modifier>Réusiner>Renommer dans le menu, ou utiliser le raccourci clavier Ctrl+R.

  2. Dans la boîte de dialogue Renommer, saisissez le nouveau nom pour l’identifiant, puis appuyez sur Entrée :

    Screenshot that shows how to specify a different name for an identifier in Visual Studio 2022.

Ajouter une instruction d’importation

Si vous avez des identifiants dans votre code qui manquent de définitions ou d’informations de type de support, Visual Studio peut vous aider à corriger le problème. Lorsque vous placez le curseur sur un identifiant qui manque d’informations, Visual Studio affiche une étiquette intelligente (ampoule) à gauche du code. L’étiquette répertorie les commandes pour ajouter les instructions de module import ou from ... import de type nécessaires à l’identifiant correspondant.

Les étapes suivantes montrent comment travailler avec l’étiquette intelligente pour ajouter des importations dans votre code.

  1. Dans votre code, placez le curseur sur un identifiant pour lequel Visual Studio affiche l’étiquette intelligente. Dans cet exemple, l’étiquette intelligente est affichée pour l’appel au module math :

    Screenshot that shows the smart tag for an identifier that needs an import statement added in Visual Studio 2019.

    Screenshot that shows the smart tag for an identifier that needs an import statement added in Visual Studio 2022.

  2. Dans le menu de l’étiquette intelligente, sélectionnez la commande pour ajouter le module ou les informations de type nécessaires à votre fichier de code. Dans cet exemple, la commande pour ajouter l’instruction import math est sélectionnée.

    Visual Studio propose des saisies semi-automatiques import pour les packages de niveau supérieur et les modules du projet actuel et de la bibliothèque standard. Visual Studio propose également des complétions from ... import pour les sous-modules et sous-packages et les membres de module. Les saisies semi-automatiques comprennent des fonctions, des classes ou des données exportées.

  3. Après avoir sélectionné une option, vérifiez que le changement attendu est effectué dans votre fichier.

    Visual Studio ajoute l’instruction import en haut de votre fichier de code après les autres importations, ou dans une instruction from ... import existante si le même module est déjà importé. Dans cet exemple, l’instruction import math est ajoutée en haut du fichier après les autres importations.

    Screenshot that shows the import statement added after running the command from the smart tag in Visual Studio 2019.

    Screenshot that shows the import statement added after running the command from the smart tag in Visual Studio 2022.

Visual Studio tente de filtrer les membres qui ne sont pas définis dans un module. Par exemple, un module importé dans un autre module qui n’est pas un enfant du module d’importation. De nombreux modules utilisent l’instruction import sys plutôt que from xyz import sys. Vous ne voyez pas une complétion pour l’importation du module sys à partir d’autres modules même si les modules manquent d’un membre __all__ qui exclut le module sys.

De même, Visual Studio filtre les fonctions importées à partir d’autres modules ou de l’espace de noms intégré. Si un module importe la fonction settrace à partir du module sys, en théorie, vous pouvez importer la fonction à partir de ce module. Cependant, la meilleure approche est d’utiliser l’instruction import settrace from sys directement, de sorte que Visual Studio offre spécifiquement cette instruction.

Enfin, supposez qu’un module soit normalement exclu, mais qu’il contienne d’autres valeurs incluses comme un nom attribué avec une valeur dans le module. Visual Studio exclut toujours l’importation. Ce comportement suppose que la valeur ne doit pas être exportée parce qu’un autre module la définit. Une autre affectation est probablement une valeur factice qui n’est également pas exportée.

Supprimer les importations inutilisées

Lorsque vous écrivez du code, il est facile de se retrouver avec des instructions import pour des modules qui ne sont pas du tout utilisés. Étant donné que Visual Studio analyse votre code, il peut automatiquement déterminer si une instruction import est nécessaire en vérifiant si le nom importé est utilisé dans la portée après que l’instruction se produit.

Les étapes suivantes montrent comment supprimer les importations inutilisées dans votre code.

  1. Faites un clic droit n’importe où dans l’éditeur et sélectionnez Supprimer les importations. Vous pouvez supprimer l’importation de Toutes les portées ou simplement de la Portée actuelle.

    Screenshot that shows how to access the Remove Imports menu in Visual Studio 2019.

    Visual Studio détermine s’il y a des modules inutilisés dans votre code et supprime les instructions import correspondantes.

  2. Après avoir sélectionné une option, confirmez que les changements attendus sont apportés à votre fichier. Dans cet exemple, Visual Studio supprime les trois modules inutilisés : binascii, array et glob.

    Screenshot that shows the results of using the Remove Imports command to remove unused modules from the code in Visual Studio 2019.

  1. Dans votre code, placez le curseur sur une instruction import pour laquelle Visual Studio affiche l’étiquette intelligente (ampoule). Dans cet exemple, l’étiquette intelligente s’affiche pour les modules inutilisés binascii, array et glob :

    Screenshot that shows how to access options to remove unused imports in Visual Studio 2022.

  2. Sélectionnez l’option Supprimer toutes les importations inutilisées ou Supprimer l’importation inutilisée pour supprimer uniquement le module sélectionné.

  3. Après avoir sélectionné une option, confirmez que les changements sont apportés à votre fichier. Dans cet exemple, Visual Studio supprime les trois modules inutilisés : binascii, array et glob.

    Screenshot that shows the results of using the Remove all unused imports command in Visual Studio 2022.

Considérations lors de l’utilisation des commandes de réusinage

Avant d’utiliser les commandes de réusinage, examinez les considérations suivantes.

  • Après avoir exécuté une commande de réusinage, vous pouvez revenir en arrière en utilisant la commande Modifier>Annuler. La commande Renommer offre une fonctionnalité d’Aperçu, vous permettant de voir les changements avant qu’ils ne soient appliqués.

  • Visual Studio ne tient pas compte du flux de contrôle dans votre code. Si vous utilisez un identifiant avant que la définition de support ne soit présente dans le code, comme une instruction import, Visual Studio traite toujours l’identifiant comme utilisé. Visual Studio s’attend à trouver des définitions de support pour les identifiants avant que vous ne fassiez des appels et des affectations.

  • Visual Studio ignore toutes les instructions from __future__. Ces instructions sont des importations qui sont effectuées à l’intérieur d’une définition de classe ou en utilisant des instructions from ... import *.