Bearbeiten von Python-Code und verwenden von IntelliSense

Da Sie einen Großteil Ihrer Entwicklungszeit im Code-Editor verbringen, bietet die Python-Unterstützung in Visual Studio Funktionen, die Ihre Produktivität erhöhen. Zu den Funktionen gehören die Syntaxhervorhebung von IntelliSense, die automatische Vervollständigung, Signaturhilfe, Methodenüberschreibungen, die Suche und die Navigation.

Der Code-Editor ist im Fenster Interaktiv in Visual Studio integriert. Während Sie arbeiten, ist es einfach, Code zwischen den beiden Fenstern auszutauschen. Weitere Informationen finden Sie unter Tutorial Schritt 3: Verwenden des interaktiven REPL-Fensters und Verwenden des interaktiven Fensters: Befehl „An Interactive senden“.

Mit der Option Gliedern können Sie sich auf bestimmte Abschnitte Ihres Codes konzentrieren. Eine allgemeine Dokumentation zur Codebearbeitung in Visual Studio finden Sie unter Features des Code-Editors.

Mit dem Visual Studio-Objektbrowser können Sie die in den einzelnen Modulen definierten Python-Klassen und die in diesen Klassen definierten Funktionen überprüfen. Sie können auf dieses Feature im Menü Ansicht oder mithilfe der Tastenkombination STRG+ALT+J zugreifen.

Verwenden von IntelliSense-Funktionen

IntelliSense bietet Vervollständigung, Signaturhilfe, QuickInfos und Codefarben. Visual Studio 2017 Version 15.7 und höher unterstützt auch Typhinweise.

Zur Verbesserung der Leistung nutzt IntelliSense in Visual Studio 2017 Version 15.5 und früher eine Vervollständigungsdatenbank, die für jede Python-Umgebung in Ihrem Projekt generiert wird. Möglicherweise müssen Sie Ihre Datenbank aktualisieren, wenn Sie Pakete hinzufügen, entfernen oder aktualisieren. Der Status der Datenbank wird im Fenster Python-Umgebungen (einer Ergänzung zum Projektmappen-Explorer) auf der Registerkarte IntelliSense angezeigt. Weitere Informationen erhalten Sie unter Referenz zum Fenster „Umgebungen“).

Visual Studio 2017 Version 15.6 und höher ermöglicht auf andere Weise IntelliSense-Vervollständigungen, die nicht von der Datenbank abhängig sind.

Vervollständigungen

Vervollständigungen werden für Anweisungen, Bezeichner oder andere Wörter angezeigt, die an der aktuellen Position im Editor eingegeben werden können. IntelliSense füllt die Liste der Optionen basierend auf Kontext und filtert falsche oder ablenkende Elemente. Vervollständigungen werden häufig durch Eingabe verschiedener Anweisungen (z. B. import) und Operatoren einschließlich eines Punkts) ausgelöst. Sie können sie jedoch auch jederzeit durch Drücken von STRG+J +Leertaste anzeigen.

Screenshot that shows member completion through Intellisense in the Visual Studio editor.

Wenn eine Vervollständigungsliste geöffnet ist, können Sie mithilfe der Pfeiltasten, der Maus oder durch weitere Eingabe nach der gewünschten Vervollständigung suchen. Je mehr Buchstaben Sie eingeben, desto genauer wird die Liste gefiltert, um wahrscheinliche Vervollständigungen anzuzeigen. Ebenso können Sie diese Tastaturkombinationen verwenden:

  • Geben Sie Buchstaben ein, die sich nicht am Anfang des gesuchten Begriffs befinden, z. B. „parse“ zum Suchen nach „argparse“.
  • Geben Sie nur Anfangsbuchstaben, z. B. „abc“ zum Suchen nach „AbstractBaseClass“ oder „air“ zum Suchen nach „as_integer_ratio“ ein.
  • Lassen Sie Buchstaben aus, z. B. „b64“ zum Suchen nach „base64“.

Im Folgenden finden Sie einige Beispiele:

Screenshot that shows member completion with filtering in the Visual Studio editor.

Membervervollständigungen werden automatisch angezeigt, wenn Sie nach einer Variable oder einem Wert einen Punkt zusammen mit dem Methoden und Attributen der möglichen Typen eingeben. Wenn eine Variable mehr als einen Typ aufweisen kann, enthält die Liste alle Möglichkeiten aller Typen. Zusätzliche Informationen werden angezeigt, um anzugeben, welche Typen jeden Abschluss unterstützen. Wenn alle möglichen Typen einen Abschluss unterstützen, wird keine Anmerkung angezeigt.

Screenshot that shows member completion on multiple types in the Visual Studio editor.

Standardmäßig werden „dunder“-Member, die mit einem doppelten Unterstrich beginnen und enden, nicht angezeigt. Auf diese Member sollte grundsätzlich nicht direkt zugegriffen werden. Wenn Sie einen Dunder verwenden müssen, geben Sie die doppelten Unterstriche vom Anfang ein, sodass diese Vervollständigungen der Liste hinzugefügt werden:

Screenshot that shows private dunder member completion types in the Visual Studio editor.

Die Anweisungen import und from ... import zeigen eine Liste von Modulen an,die importiert werden können. Die from ... import-Aussage erzeugt eine Liste mit Membern, die aus dem angegebenen Modul importiert werden können.

Screenshot that shows import and from import completion in the Visual Studio editor.

Die Anweisungen raise und except zeigen Listen mit Klassen an, bei denen es sich wahrscheinlich um Fehlertypen handelt. Diese Liste umfasst möglicherweise nicht alle benutzerdefinierten Ausnahmen, hilft Ihnen aber dabei, schnell passende integrierte Ausnahmen zu finden:

Screenshot that shows exception completion in the Visual Studio editor.

Durch Auswahl des @-Symbols (at) wird ein Decorator gestartet und potenzielle Decorators angezeigt. Viele dieser Elemente können nicht als Decorators verwendet werden. Überprüfen Sie die Bibliotheksdokumentation, um zu bestimmen, welcher Decorator verwendet werden soll.

Screenshot that shows decorator completion in the Visual Studio editor.

Weitere Informationen finden Sie unter Optionen – Abschlussergebnisse.

Typhinweise

Typhinweise sind in Visual Studio 2017, Version 15.7 und höher, verfügbar.

Bei „Typhinweisen“ in Python 3.5+ (PEP 484, python.org) handelt es sich um eine Anmerkungssyntax für Funktionen und Klassen, die die Typen der Argumente, Rückgabewerte und Klassenattribute angeben. IntelliSense zeigt Typhinweise an, wenn Sie auf Funktionsaufrufe, Argumente und Variablen zeigen, die diese Anmerkungen aufweisen.

Im folgenden Beispiel ist die Vector-Klasse als List[float]-Typ deklariert, und die scale-Funktion enthält Typhinweise sowohl für ihre Argumente als auch für ihren Rückgabewert. Wenn mit dem Mauszeiger auf einen Aufruf dieser Funktion gezeigt wird, werden die Typhinweise angezeigt:

Screenshot that shows how hovering over a function call to reveal type hints.

Im nächsten Beispiel sehen Sie, wie die mit Anmerkungen versehenen Attribute der Employee-Klasse im IntelliSense-Vervollständigungspopupfenster für ein Attribut angezeigt werden:

Screenshot that shows IntelliSense completion for a class with type hints.

Es ist ferner hilfreich, Typhinweise während Ihres Projekts zu überprüfen, da Fehler üblicherweise erst während der Laufzeit auftreten. Zu diesem Zweck integriert Visual Studio das branchenübliche Mypy-Tool über den Kontextmenübefehl Python>Mypy ausführen im Lösungsmappen-Explorer:

Screenshot that shows the available linting commands for Python projects in Solution Explorer.

Beim Ausführen des Befehls werden Sie ggf. aufgefordert, das mypy-Paket zu installieren. Visual Studio führt dann mypy aus, um Typhinweise in allen Python-Dateien im Projekt zu überprüfen. Fehler werden im Fenster Fehlerliste von Visual Studio angezeigt. Wenn ein Element im Fenster ausgewählt wird, erfolgt der Sprung zur entsprechenden Zeile in Ihrem Code.

Als einfaches Beispiel enthält die folgende Funktionsdefinition einen Typhinweis, um anzugeben, dass es sich bei dem input-Argument um den Typ str handelt, während der Aufruf der Funktion versucht, eine ganze Zahl zu übergeben:

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

commas_to_colons(1)

Mithilfe des Befehls Mypy ausführen für diesen Code wird der folgende Fehler generiert:

Screenshot that shows the example result of Mypy validating type hints.

Hinweis

Für Versionen von Python vor 3.5 zeigt Visual Studio auch Typhinweise an, die Sie über Typeshed-Stub-Dateien (.pyi) angeben. Sie können Stub-Dateien immer dann verwenden, wenn Sie Typhinweise nicht direkt in Ihren Code einschließen möchten oder Typhinweise für eine Bibliothek erstellen wollen, die diese nicht direkt verwendet. Weitere Informationen finden Sie unter Create Stubs for Python Modules (Erstellen von Stubs für Python-Module) im Projekt-Wiki für MyPy.

Visual Studio unterstützt derzeit keine Typhinweise in Kommentaren.

Signaturhilfe

Wenn Sie Code schreiben, der eine Funktion aufruft, wird die Signaturhilfe angezeigt, wenn Sie die öffnende Klammer ( eingeben. Es zeigt verfügbare Dokumentations- und Parameterinformationen an. Sie können auf die Signaturhilfe mit der Tastenkombination Strg+Umschalttaste+Leertaste innerhalb eines Funktionsaufrufs zugreifen. Die angezeigten Informationen hängen von den Dokumentationszeichenfolgen im Quellcode der Funktion ab, enthalten aber alle Standardwerte.

Screenshot that shows signature help in the Visual Studio editor.

Tipp

Um die Signaturhilfe zu deaktivieren, wechseln Sie zu Extras>Optionen>Text-Editor>Python>Allgemein. Deaktivieren Sie das Kontrollkästchen Anweisungsabschluss>Parameterinformationen.

QuickInfo

Wenn Sie den Mauszeiger über einen Bezeichner bewegen, wird eine QuickInfo angezeigt. Je nach Bezeichner zeigt QuickInfo die möglichen Werte oder Typen, die verfügbare Dokumentation, Rückgabetypen und Definitionsspeicherorte an:

Screenshot that shows Quick Info display information in the Visual Studio editor.

Codefarben

Codefarben verwenden Informationen aus der Codeanalyse, um Variablen, Anweisungen und andere Teile Ihres Codes farbig hervorzuheben. Variablen, die auf Module oder Klassen verweisen, werden möglicherweise in einer anderen Farbe angezeigt als Funktionen oder andere Werte. Parameternamen werden möglicherweise in einer anderen Farbe angezeigt als lokale oder globale Variablen. Funktionen werden standardmäßig nicht fett hervorgehoben.

Screenshot that shows code and syntax coloring in the Visual Studio editor.

Um die Farben anzupassen, wechseln Sie zu Extras>Optionen>Umgebungen>Schriftarten und Farben. Ändern Sie in der Liste Anzeigeelemente die gewünschten Python-Einträge:

Screenshot that shows the Fonts and Colors options in Visual Studio.

Einfügen von Codeausschnitten

Codeausschnitte sind Fragmente, die über eine Tastenkombination und Auswahl der Tab-Taste in Ihre Dateien eingefügt werden können. Sie können auch die Befehle Bearbeiten>IntelliSense>Ausschnitt einfügen und Umschließen mit verwenden. Wählen Sie Python und dann den gewünschten Ausschnitt aus.

Beispielsweise ist class eine Kurzform für einen Codeausschnitt, der eine Klassendefinition einfügt. Wenn Sie class eingeben, sehen Sie, dass der Codeausschnitt in der Liste für automatische Vervollständigung angezeigt wird:

Screenshot that shows a code snippet for the class shortcut.

Durch Auswahl der Tab-Taste wird der Rest der Klasse generiert. Sie können dann in die Namens- und Basisliste schreiben, zwischen den hervorgehobenen Feldern mit der Tab-Taste wechseln und dann die Eingabetaste drücken, um mit dem Eingeben des Texts zu beginnen.

Screenshot that shows highlights on areas of a code snippet for you to complete.

Wenn Sie den Menübefehl Bearbeiten>IntelliSense>Codeausschnitt einfügen verwenden, wählen Sie zunächst Python und dann den gewünschten Ausschnitt aus.

Screenshot that shows how to select a code snippet through the Insert Code Snippet command.

Der Befehl Bearbeiten>IntelliSense>Umgeben mit platziert auf ähnliche Weise die aktuelle Auswahl im Text-Editor in einem ausgewählten Strukturelement. Angenommen, Sie hätten einen Code wie im folgenden Beispiel:

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

Bei Auswahl dieses Codes und des Befehls Umschließen mit wird eine Liste der verfügbaren Ausschnitte angezeigt. Durch Auswählen von def aus der Codeausschnittliste wird der ausgewählte Code in einer Funktionsdefinition platziert. Mit der Tab-Taste können Sie zwischen dem Namen der hervorgehobenen Funktion und den Argumenten navigieren:

Screenshot that shows how to use the Surround With command for code snippets.

Untersuchen verfügbarer Ausschnitte

Die verfügbaren Codeausschnitte werden im Codeausschnitt-Manager angezeigt. Greifen Sie auf dieses Feature über Extras>Codeausschnitt-Manager zu, und wählen Sie Python als Sprache aus:

Screenshot that shows the Code Snippets Manager in Visual Studio.

Informationen zum Erstellen eigener Codeausschnitte finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Codeausschnitts.

Wenn Sie einen Codeausschnitt geschrieben haben, den Sie gerne für andere Benutzer freigeben möchten, posten Sie ihn in einem Gist, und informieren Sie uns darüber. Möglicherweise verwenden wir ihn in einer zukünftigen Version von Visual Studio.

Die Python-Unterstützung in Visual Studio bietet mehrere Möglichkeiten zum schnellen Navigieren im Code, einschließlich Bibliotheken, für die der Quellcode verfügbar ist. Sie finden Bibliotheken mit Quellcode für die Befehle Navigationsleiste, Gehe zu Definition, Gehe zu und Alle Verweise suchen. Sie können auch den Objektkatalog von Visual Studio verwenden.

Die Navigationsleiste wird am oberen Rand jedes Editor-Fensters angezeigt und enthält eine Liste mit Definitionen auf zwei Ebenen. Das linke Dropdownmenü enthält Klassen- und Funktionsdefinitionen der obersten Ebene in der aktuellen Datei. Das rechte Dropdownmenü zeigt eine Liste von Definitionen innerhalb des links angezeigten Bereichs an. Wenn Sie sich im Editor bewegen, werden die Listen aktualisiert und zeigen den aktuellen Kontext an. Sie können auch einen Eintrag aus diesen Listen auswählen, um direkt an die entsprechende Stelle zu springen.

screenshot that shows the Navigation Bar in the Visual Studio editor.

Tipp

Um die Navigationsleiste auszublenden, wechseln Sie zu Extras>Optionen>Text-Editor>Python>Allgemein, und deaktivieren Sie die Option Einstellungen>Navigationsleiste.

Gehe zu Definition

Der Befehl Gehe zu Definition wechselt schnell von einem Bezeichner (z. B. einem Funktionsnamen, einer Klasse oder einer Variablen) zu dem Quellcode, in dem dieser definiert ist. Um den Befehl aufzurufen, klicken Sie mit der rechten Maustaste auf einen Bezeichner, und wählen Sie Gehe zu Definition aus, oder platzieren Sie das Caretzeichen im Bezeichner, und wählen Sie F12 aus. Der Befehl funktioniert in Ihrem Code und in externen Bibliotheken, in denen der Quellcode verfügbar ist. Wenn der Quellcode der Bibliothek nicht verfügbar ist, wechselt Gehe zu Definition zur entsprechenden import-Anweisung für einen Modulverweis oder zeigt einen Fehler an.

Screenshot that shows the Go To Definition command in Visual Studio.

Gehe zu

Der Befehl Bearbeiten>Gehe zu (Strg+,) zeigt ein Suchfeld im Editor an, in das Sie eine beliebige Zeichenfolge eingeben und mögliche Übereinstimmungen in Ihrem Code anzeigen können, der eine Funktion, eine Klasse oder eine Variable definiert, die diese Zeichenfolge enthält. Diese Funktion bietet eine ähnliche Funktionalität wie Gehe zu Definition, ohne jedoch die Verwendung eines Bezeichners suchen zu müssen.

Um zur Definition dieses Bezeichners zu navigieren, doppelklicken Sie auf einen beliebigen Namen oder wählen Sie den Namen mit den Pfeiltasten und anschließend die Eingabetaste aus.

Screenshot that shows the Go To command in Visual Studio.

Alle Verweise suchen

Das Feature Alle Verweise suchen ist eine nützliche Möglichkeit, um herauszufinden, wo ein bestimmter Bezeichner definiert und verwendet wird, einschließlich Importen und Zuweisungen. Um den Befehl aufzurufen, klicken Sie mit der rechten Maustaste auf einen Bezeichner, und wählen Sie Alle Verweise suchen, aus, oder platzieren Sie das Caretzeichen im Bezeichner, und wählen Sie Umschalttaste+F12 aus. Durch Doppelklicken auf ein Element in der Liste navigieren Sie zur entsprechenden Position.

Screenshot that shows the Find All References results in Visual Studio.