Partager via


Refactoriser le code Python dans Visual Studio

La réutilisation du code existant et l’actualisation du code sont des tâches courantes pour les développeurs. Vous souhaiterez peut-être refactoriser le code existant dans un autre but et gagner du temps en n’écrivant pas tout nouveau code. Vous pouvez nettoyer votre code pour supprimer les éléments inutilisés ou actualiser les importations et méthodes afin qu’ils soient actuels avec les versions récentes.

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

Prerequisites

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

Renommer une classe, une méthode ou une variable

Vous pouvez utiliser la commande Rename pour modifier le nom d’un identificateur 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’identificateur ou uniquement les 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’identificateur que vous souhaitez renommer et sélectionnez Renommer. Vous pouvez également placer le curseur sur un identificateur et sélectionner Modifier>Refactoriser>Renommer dans le menu, ou utiliser le raccourci clavier Ctrl+R.

  2. Dans la boîte de dialogue Renommer, tapez le nouveau nom de l’identificateur suivi de Entrée :

    Capture d’écran montrant comment spécifier un autre nom pour un identificateur dans Visual Studio 2022.

Ajouter une instruction import

Si votre code contient des identificateurs sans définition ou sans informations de type, Visual Studio peut vous aider à corriger le problème. Lorsque vous placez le pointeur sur un identificateur qui ne contient pas d’informations, Visual Studio affiche une balise active (ampoule) à gauche du code. La balise répertorie les commandes permettant d’ajouter les déclarations nécessaires import ou from ... import pour l'identificateur correspondant.

Les étapes suivantes montrent comment utiliser la balise active pour ajouter des importations dans votre code.

  1. Dans votre code, placez le pointeur sur un identificateur pour lequel Visual Studio affiche la balise active (ampoule). Dans cet exemple, la balise active s’affiche pour l’appel au module mathématique :

    Capture d’écran montrant la balise active pour un identificateur qui a besoin d’une instruction d’importation ajoutée dans Visual Studio 2022.

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

    Visual Studio offre import des achèvements pour les packages et modules de niveau supérieur dans le projet actuel et la bibliothèque standard. Visual Studio offre également des complétions pour les sous-modules, les sous-packages et les membres du module. Les achèvements incluent des fonctions, des classes ou des données exportées.

  3. Après avoir sélectionné une option, vérifiez que la modification attendue est apportée à votre fichier.

    Visual Studio ajoute l’instruction import en haut de votre fichier de code après d’autres importations ou dans une instruction existante from ... import 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 :

    Capture d’écran montrant l’instruction import ajoutée après avoir exécuté la commande à partir de la balise active dans Visual Studio 2022.

Visual Studio tente de filtrer les membres qui ne sont pas définis dans un module. Par exemple, il s’agit d’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 d'auto-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 settrace fonction à partir du sys module, en théorie, vous pouvez importer la fonction à partir de ce module. Toutefois, la meilleure approche consiste à utiliser l’instruction import settrace from sys directement, de sorte que Visual Studio propose spécifiquement cette instruction.

Enfin, supposons qu’un module soit normalement exclu, mais qu’il a 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, car un autre module le définit. Une autre affectation est susceptible d’être une valeur factice qui n’est pas également exportée.

Supprimer les importations inutilisées

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

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

  1. Dans votre code, placez le point d’insertion sur une import instruction pour laquelle Visual Studio affiche la balise active (ampoule). Dans cet exemple, la balise intelligente s'affiche pour les modules inutilisés binascii, array et glob :

    Capture d’écran montrant comment accéder aux options pour supprimer les importations inutilisées dans 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, vérifiez que les modifications sont apportées à votre fichier. Dans cet exemple, Visual Studio supprime les trois modules inutilisés : binascii, array et glob.

    Capture d’écran montrant les résultats de l’utilisation de la commande Supprimer toutes les importations inutilisées dans Visual Studio 2022.

Considérations relatives à l’utilisation de commandes de refactorisation

Avant d’utiliser les commandes de refactorisation, passez en revue les considérations suivantes.

  • Après avoir exécuté une commande de refactorisation, vous pouvez rétablir les modifications à l’aide de la commande Modifier>Annuler. La commande Rename offre une fonctionnalité d’aperçu . Vous pouvez donc voir les modifications avant qu’elles ne soient appliquées.

  • Visual Studio ne prend pas en compte le flux de contrôle de votre code. Si vous utilisez un identificateur avant que la définition de prise en charge soit présente dans le code, par exemple une import instruction, Visual Studio traite toujours l’identificateur comme utilisé. Visual Studio s’attend à trouver des définitions associées pour les identificateurs avant d’effectuer des appels et des affectations.

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