Umgestalten von Code in Visual Studio

Die Wiederverwendung von vorhandenem Code und das Aktualisieren von Code sind häufige Aufgaben für Entwickler. Möglicherweise möchten Sie vorhandenen Code zu einem anderen Zweck umgestalten und Zeit sparen, indem Sie nicht den gesamten neuen Code schreiben. Möglicherweise möchten Sie Ihren Code bereinigen, um nicht verwendete Elemente zu entfernen, oder Importe und Methoden aktualisieren, damit sie mit den neuesten Versionen auf dem aktuellen Stand sind.

Visual Studio bietet mehrere Befehle, mit denen Sie Ihren Python-Quellcode automatisch transformieren und bereinigen können:

Voraussetzungen

  • Visual Studio. Führen Sie zum Installieren des Produkts die Schritte unter Installieren von Visual Studio aus.
  • Zugriff auf ein Python-Codeprojekt mit vorhandenem Code

Umbenennen einer Klasse, Methode oder Variable

Sie können den Befehl „Umbenennen“ verwenden, um den Namen für einen bestimmten Bezeichner zu ändern, einschließlich einer Klasse, Methode oder Variablen. Visual Studio unterstützt das Aktualisieren aller Instanzen des Bezeichners oder nur die spezifischen Instanzen, die Sie angeben.

Die folgenden Schritte zeigen, wie Sie den Befehl Umbenennen in Ihrem Code verwenden.

  1. Klicken Sie im Code mit der rechten Maustaste auf den Bezeichner, den Sie umbenennen möchten, und wählen Sie Umbenennen aus. Sie können das Caretzeichen auch auf einen Bezeichner setzen und im Menü Bearbeiten>Umgestalten>Umbenennen auswählen, oder das Tastaturkürzel F2 verwenden.

  2. Geben Sie im Dialogfeld Umbenennen, das geöffnet wird, den neuen Namen für den Bezeichner ein, und wählen Sie OK aus:

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

  3. Wählen Sie im nächsten Dialogfeld die Dateien und Instanzen in Ihrem Code aus, die den neuen Namen verwenden sollen. Sie können eine einzelne Instanz auswählen, um eine Vorschau der jeweiligen Änderung anzuzeigen:

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

  4. Wählen Sie Anwenden aus, um die Änderungen für Ihre Quellcodedateien zu übernehmen.

  1. Klicken Sie im Code mit der rechten Maustaste auf den Bezeichner, den Sie umbenennen möchten, und wählen Sie Umbenennen aus. Sie können das Caretzeichen auch auf einen Bezeichner setzen und im Menü Bearbeiten>Umgestalten>Umbenennen auswählen, oder die Tastenkombination STRG+R verwenden.

  2. Geben Sie im Dialogfeld Umbenennen den neuen Namen für den Bezeichner ein, gefolgt von der Eingabetaste:

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

Hinzufügen einer Importanweisung

Wenn Ihr Code Bezeichner enthält, denen Definitionen oder unterstützende Typinformationen fehlen, kann Visual Studio Ihnen bei der Behebung des Problems helfen. Wenn Sie das Caretzeichen auf einen Bezeichner setzen, dem Informationen fehlen, zeigt Visual Studio links neben dem Code ein Smarttag (Glühbirne) an. Das Tag listet Befehle auf, um die erforderlichen import- oder from ... import- Anweisungen für den entsprechenden Bezeichner hinzuzufügen.

Die folgenden Schritte zeigen, wie Sie mit dem Smarttag arbeiten, um Importe in Ihrem Code hinzuzufügen.

  1. Platzieren Sie in Ihrem Code das Caretzeichen auf einem Bezeichner, für den Visual Studio das Smarttag (Glühbirne) anzeigt. In diesem Beispiel wird das Smarttag für den Aufruf des mathematischen Moduls angezeigt:

    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. Wählen Sie im Menü „Smarttag“ den Befehl aus, um der Codedatei die erforderlichen Modul- oder Typinformationen hinzuzufügen. In diesem Beispiel ist der Befehl zum Hinzufügen der import math-Anweisung ausgewählt.

    Visual Studio bietet import-Vervollständigungen für Pakete und Module auf oberster Ebene im aktuellen Projekt und der Standardbibliothek. Visual Studio bietet auch from ... import-Vervollständigungen für Submodule und Subpakete sowie für Modulmember. Vervollständigungen umfassen Funktionen, Klassen oder exportierte Daten.

  3. Nachdem Sie eine Option ausgewählt haben, bestätigen Sie, dass die erwartete Änderung an Ihrer Datei vorgenommen wird.

    Visual Studio fügt die import-Anweisung oben in Ihrer Codedatei nach anderen Importen oder in eine vorhandene from ... import-Anweisung ein, wenn das gleiche Modul bereits importiert ist. In diesem Beispiel wird die import math-Anweisung am Anfang der Datei nach den anderen Importen hinzugefügt:

    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 versucht, Elemente herauszufiltern, die nicht in einem Modul definiert sind. Ein Beispiel ist ein Modul, das in ein anderes Modul importiert wird, das kein untergeordnetes Element des Importmoduls ist. Viele Module verwenden die import sys-Anweisung anstelle von from xyz import sys. Sie sehen keinen Abschluss für den Import des sys-Moduls aus anderen Modulen, auch wenn in den Modulen ein __all__-Member fehlt, der das sys-Modul ausschließt.

Auf ähnliche Weise filtert Visual Studio Funktionen, die aus anderen Modulen oder aus dem integrierten Namespace importiert werden. Wenn ein Modul die Funktion settrace aus dem sys-Modul importiert, könnten Sie die Funktion theoretisch aus diesem Modul importieren. Der beste Ansatz besteht jedoch darin, die import settrace from sys-Anweisung direkt zu verwenden, sodass Visual Studio diese Anweisung speziell anbietet.

Nehmen wir abschließend an, dass ein Modul normalerweise ausgeschlossen ist, aber andere Werte enthalten sind, z. B. ein Name, der einem Wert im Modul zugewiesen ist. Visual Studio schließt den Import weiterhin aus. Dieses Verhalten geht davon aus, dass der Wert nicht exportiert werden sollte, da er durch ein anderes Modul definiert ist. Bei einer anderen Zuweisung handelt es sich wahrscheinlich um einen Dummy-Wert, der ebenfalls nicht exportiert wird.

Nicht verwendete Importe entfernen

Beim Schreiben von Code entstehen leicht import-Anweisungen für Module, die gar nicht verwendet werden. Visual Studio analysiert Ihren Code und kann daher automatisch ermitteln, ob eine import-Anweisung benötigt wird. Dafür prüft Visual Studio, ob der importierte Name in dem Geltungsbereich verwendet wird, nachdem die Anweisung auftritt.

Die folgenden Schritte zeigen, wie Sie nicht verwendete Importe in Ihrem Code entfernen.

  1. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle im Editor, und wählen Sie Importe entfernen aus. Sie können den Import aus allen Bereichen oder nur aus dem aktuellen Bereich entfernen.

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

    Visual Studio ermittelt, ob in Ihrem Code nicht verwendete Module vorhanden sind, und entfernt die entsprechenden import-Anweisungen.

  2. Nachdem Sie eine Option ausgewählt haben, bestätigen Sie, dass die erwarteten Änderungen an Ihrer Datei vorgenommen werden. In diesem Beispiel entfernt Visual Studio die drei nicht verwendeten Module: binascii, array und glob.

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

  1. Platzieren Sie in Ihrem Code das Caretzeichen auf einer import-Anweisung, für die Visual Studio das Smarttag (Glühbirne) anzeigt. In diesem Beispiel wird das Smarttag für die nicht verwendeten Module binascii, array und glob angezeigt:

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

  2. Wählen Sie die Option Alle nicht verwendeten Importe entfernen oder Nicht verwendeten Import entfernen aus, um nur das ausgewählte Modul zu entfernen.

  3. Nachdem Sie eine Option ausgewählt haben, bestätigen Sie die an Ihrer Datei vorgenommenen Änderungen. In diesem Beispiel entfernt Visual Studio die drei nicht verwendeten Module: binascii, array und glob.

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

Überlegungen bei der Verwendung von Umgestaltungsbefehlen

Bevor Sie die Umgestaltungsbefehle verwenden, prüfen Sie die folgenden Überlegungen.

  • Nachdem Sie einen Umgestaltungsbefehl ausgeführt haben, können Sie die Änderungen mit dem Befehl Bearbeiten>Rückgängig machen rückgängig machen. Der Befehl Umbenennen bietet ein Vorschau-Feature, sodass Sie Änderungen sehen können, bevor sie angewendet werden.

  • Visual Studio ist nicht für den Steuerungsfluss in Ihrem Code verantwortlich. Wenn Sie einen Bezeichner verwenden, bevor die unterstützende Definition im Code vorhanden ist, z. B. eine import-Anweisung, verarbeitet Visual Studio den Bezeichner weiterhin wie verwendet. Visual Studio erwartet, dass unterstützende Definitionen für Bezeichner gefunden werden, bevor Sie Aufrufe und Zuweisungen tätigen.

  • Visual Studio ignoriert alle from __future__-Importanweisungen. Diese Anweisungen sind Importe, die innerhalb einer Klassendefinition oder mithilfe von from ... import *-Anweisungen ausgeführt werden.