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 :
- Renommer change le nom d’une classe, méthode ou variable sélectionnée.
- Ajouter à l’importation fournit une balise intelligente pour ajouter une importation manquante.
- Supprimer les importations inutilisées supprime les importations inutilisées.
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.
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.
Dans la boîte de dialogue Renommer, saisissez le nouveau nom pour l’identifiant et sélectionnez OK :
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.
Sélectionnez Appliquer pour modifier vos fichiers de code source.
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.
Dans la boîte de dialogue Renommer, saisissez le nouveau nom pour l’identifiant, puis appuyez sur Entrée :
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.
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 :
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étionsfrom ... 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.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 instructionfrom ... import
existante si le même module est déjà importé. Dans cet exemple, l’instructionimport math
est ajoutée en haut du fichier après les autres importations.
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.
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.
Visual Studio détermine s’il y a des modules inutilisés dans votre code et supprime les instructions
import
correspondantes.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.
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 :Sélectionnez l’option Supprimer toutes les importations inutilisées ou Supprimer l’importation inutilisée pour supprimer uniquement le module sélectionné.
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.
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 instructionsfrom ... import *
.