Edytowanie kodu w języku Python i używanie funkcji IntelliSense
Ponieważ większość czasu programowania spędzasz w edytorze kodu, obsługa języka Python w programie Visual Studio zapewnia funkcje ułatwiające zwiększenie produktywności. Funkcje obejmują wyróżnianie składni funkcji IntelliSense, autouzupełnianie, pomoc w podpisie, zastępowanie metod, wyszukiwanie i nawigację.
Edytor kodu jest zintegrowany z oknem interaktywnym w programie Visual Studio. Podczas pracy można łatwo wymieniać kod między dwoma oknami. Aby uzyskać więcej informacji, zobacz Samouczek Krok 3: Używanie okna interaktywnego REPL i Używanie okna interakcyjnego — Wysyłanie do interakcyjnego polecenia.
Tworzenie konspektowania pomaga skoncentrować się na konkretnych sekcjach kodu. Aby uzyskać ogólną dokumentację dotyczącą edytowania kodu w programie Visual Studio, zobacz Funkcje edytora kodu.
Przeglądarka obiektów programu Visual Studio umożliwia inspekcję klas języka Python zdefiniowanych w każdym module i funkcji zdefiniowanych w tych klasach. Dostęp do tej funkcji można uzyskać w menu Widok lub za pomocą skrótu klawiaturowego Ctrl+Alt+J.
Korzystanie z funkcji IntelliSense
Funkcja IntelliSense zapewnia uzupełnianie, pomoc w podpisie, szybkie informacje i kolorowanie kodu. Program Visual Studio 2017 w wersji 15.7 lub nowszej również obsługuje wskazówki dotyczące typów.
Aby zwiększyć wydajność, funkcja IntelliSense w programie Visual Studio 2017 w wersji 15.5 lub starszej zależy od bazy danych uzupełniania wygenerowanej dla każdego środowiska języka Python w projekcie. Może być konieczne odświeżenie bazy danych, jeśli dodasz, usuniesz lub zaktualizujesz pakiety. Stan bazy danych jest wyświetlany w oknie Środowiska języka Python (towarzyszem Eksplorator rozwiązań) na karcie IntelliSense. Aby uzyskać więcej informacji, zobacz Dokumentacja okna środowiska.
Program Visual Studio 2017 w wersji 15.6 lub nowszej używa innego środka w celu zapewnienia uzupełniania funkcji IntelliSense, które nie są zależne od bazy danych.
Uzupełnień
Uzupełnienia są wyświetlane jako instrukcje, identyfikatory i inne słowa, które można odpowiednio wprowadzić w bieżącej lokalizacji w edytorze. Funkcja IntelliSense wypełnia listę opcji na podstawie kontekstu i filtrów niepoprawnych lub rozpraszających uwagę elementów. Ukończenia są często wyzwalane przez wprowadzenie różnych instrukcji (takich jak import
) i operatorów (w tym kropkę), ale mogą być wyświetlane w dowolnym momencie, wybierając skrót klawiaturowy Ctrl+J +Spacja.
Po otwarciu listy uzupełniania możesz wyszukać ukończenie, używając klawiszy strzałek, myszy lub kontynuując wpisywanie. Podczas wpisywania większej liczby liter lista jest dodatkowo filtrowana w celu wyświetlenia prawdopodobnych uzupełnień. Możesz również użyć skrótów, takich jak:
- Wpisz litery, które nie znajdują się na początku nazwy, takie jak "analizowanie", aby znaleźć "argparse"
- Wpisz tylko litery, które znajdują się na początku słów, takich jak "abc", aby znaleźć "AbstractBaseClass" lub "air", aby znaleźć "as_integer_ratio"
- Pomiń litery, takie jak "b64", aby znaleźć "base64"
Oto kilka przykładów:
Uzupełnianie składowych jest wyświetlane automatycznie po wpisaniu kropki po zmiennej lub wartości wraz z metodami i atrybutami potencjalnych typów. Jeśli zmienna może być więcej niż jednym typem, lista zawiera wszystkie możliwości ze wszystkich typów. Dodatkowe informacje są wyświetlane, aby wskazać, które typy obsługują każde ukończenie. Jeśli wszystkie możliwe typy obsługują uzupełnianie, nie jest wyświetlana adnotacja.
Domyślnie członkowie "dunder" (elementy członkowskie rozpoczynające się i kończące się podwójnym podkreśleniem) nie są wyświetlane. Ogólnie rzecz biorąc, dostęp do takich członków nie powinien być uzyskiwany bezpośrednio. Jeśli musisz użyć dunder, wpisz wiodące podwójne podkreślenie, aby dodać te uzupełnienia do listy:
Instrukcje import
i from ... import
zawierają listę modułów, które można zaimportować. Instrukcja from ... import
tworzy listę zawierającą elementy członkowskie, które można zaimportować z określonego modułu.
Instrukcje raise
i except
wyświetlają listy klas, które mogą być typami błędów. Lista może nie zawierać wszystkich wyjątków zdefiniowanych przez użytkownika, ale ułatwia szybkie znajdowanie odpowiednich wbudowanych wyjątków:
Wybranie @ symbolu (na) powoduje uruchomienie dekoratora i wyświetlenie potencjalnych dekoratorów. Wiele z tych elementów nie można używać jako dekoratorów. Zapoznaj się z dokumentacją biblioteki, aby określić, który dekorator ma być używany.
Aby uzyskać więcej informacji, zobacz Opcje — wyniki ukończenia.
Wskazówki dotyczące typów
Wskazówki dotyczące typów są dostępne w programie Visual Studio 2017 w wersji 15.7 lub nowszej.
"Wskazówki dotyczące typów" w języku Python 3.5+ (PEP 484 (python.org) to składnia adnotacji dla funkcji i klas, które wskazują typy argumentów, zwracane wartości i atrybuty klasy. Funkcja IntelliSense wyświetla wskazówki dotyczące typów po umieszczeniu wskaźnika myszy na wywołaniach funkcji, argumentach i zmiennych, które mają te adnotacje.
W poniższym przykładzie Vector
klasa jest zadeklarowana jako typ List[float]
, a scale
funkcja zawiera wskazówki dotyczące typu zarówno dla argumentów, jak i wartości zwracanej. Zatrzymanie wskaźnika myszy na wywołaniu funkcji spowoduje wyświetlenie wskazówek dotyczących typów:
W następnym przykładzie zobaczysz, jak atrybuty Employee
adnotacji klasy są wyświetlane w oknie podręcznym uzupełniania funkcji IntelliSense dla atrybutu:
Warto również zweryfikować wskazówki dotyczące typów w całym projekcie, ponieważ błędy zwykle nie pojawiają się do czasu wykonywania. W tym celu program Visual Studio integruje standardowe narzędzie Mypy w branży za pomocą polecenia menu kontekstowego Python>Run Mypy w Eksplorator rozwiązań:
Uruchomienie polecenia powoduje zainstalowanie pakietu Mypy w razie potrzeby. Następnie program Visual Studio uruchamia narzędzie Mypy, aby zweryfikować wskazówki dotyczące typów w każdym pliku języka Python w projekcie. Błędy są wyświetlane w oknie Lista błędów programu Visual Studio. Wybranie elementu w oknie powoduje przejście do odpowiedniego wiersza w kodzie.
W prostym przykładzie poniższa definicja funkcji zawiera wskazówkę typu wskazującą, że input
argument jest typem str
, natomiast wywołanie tej funkcji próbuje przekazać liczbę całkowitą:
def commas_to_colons(input: str):
items = input.split(',')
items = [x.strip() for x in items]
return ':'.join(items)
commas_to_colons(1)
Za pomocą polecenia Uruchom plik Mypy w tym kodzie generuje następujący błąd:
Uwaga
W przypadku wersji języka Python wcześniejszych niż 3.5 program Visual Studio wyświetla również wskazówki dotyczące typów dostarczane za pośrednictwem plików wycinków Typeshed (pyi). Możesz użyć plików wycinków, jeśli nie chcesz dołączać wskazówek dotyczących typów bezpośrednio w kodzie lub tworzyć wskazówki dotyczące typów dla biblioteki, która nie używa ich bezpośrednio. Aby uzyskać więcej informacji, zobacz Tworzenie wycinków dla modułów języka Python w witrynie typu wiki projektu Mypy.
Program Visual Studio nie obsługuje obecnie wskazówek dotyczących typów w komentarzach.
Pomoc dotycząca podpisu
Podczas pisania kodu, który wywołuje funkcję, pomoc dotycząca podpisu jest wyświetlana podczas wpisywania nawiasu (
otwierającego . Wyświetla on dostępną dokumentację i informacje o parametrach. Możesz uzyskać dostęp do pomocy dotyczącej podpisu za pomocą skrótu klawiaturowego Ctrl+Shift+Spacja wewnątrz wywołania funkcji. Wyświetlane informacje zależą od ciągów dokumentacji w kodzie źródłowym funkcji, ale zawierają wszystkie wartości domyślne.
Napiwek
Aby wyłączyć pomoc dotyczącą podpisu, przejdź do pozycji Narzędzia>Opcje>Edytor>tekstu w języku Python>Ogólne. Wyczyść pole wyboru Informacje o parametrze uzupełniania instrukcji>.
Szybkie informacje
Umieszczenie wskaźnika myszy na identyfikatorze powoduje wyświetlenie etykietki narzędzia Szybkie informacje. W zależności od identyfikatora szybkie informacje mogą wyświetlać potencjalne wartości lub typy, dowolną dostępną dokumentację, typy zwracane i lokalizacje definicji:
Kolorowanie kodu
Kolorowanie kodu używa informacji z analizy kodu do zmiennych kolorów, instrukcji i innych części kodu. Zmienne odwołujące się do modułów lub klas mogą być wyświetlane w innym kolorze niż funkcje lub inne wartości. Nazwy parametrów mogą być wyświetlane w innym kolorze niż zmienne lokalne lub globalne. Domyślnie funkcje nie są wyświetlane pogrubioną.
Aby dostosować kolory, przejdź do pozycji Narzędzia>Opcje>Czcionki i kolory środowiska.> Na liście Wyświetl elementy zmodyfikuj żądane wpisy języka Python:
Wstaw fragmenty kodu
Fragmenty kodu to fragmenty kodu, które można wstawić do plików za pomocą skrótu klawiaturowego i wybierając kartę. Możesz również użyć poleceń Edit>IntelliSense>Insert Snippet i Surround With, wybierz pozycję Python, a następnie wybierz odpowiedni fragment kodu.
Na przykład class
to skrót do fragmentu kodu, który wstawia definicję klasy. Podczas wpisywania class
kodu zostanie wyświetlony fragment kodu na liście autouzupełniania:
Wybranie karty powoduje wygenerowanie pozostałej części klasy. Następnie możesz wpisać nazwę i listę baz, przejść między wyróżnionymi polami z kartą, a następnie wybrać klawisz Enter, aby rozpocząć wpisywanie treści.
Polecenia menu
Gdy używasz polecenia menu Edytuj>wstaw fragment kodu IntelliSense>, najpierw wybierz pozycję Python, a następnie wybierz odpowiedni fragment kodu:
Polecenie Edit IntelliSense Surround With (Edytuj>funkcję IntelliSense>Otocz za pomocą) umieszcza bieżące zaznaczenie w edytorze tekstów wewnątrz wybranego elementu strukturalnego. Załóżmy, że masz fragment kodu podobny do następującego przykładu:
sum = 0
for x in range(1, 100):
sum = sum + x
Wybranie tego kodu i wybranie polecenia Surround With powoduje wyświetlenie listy dostępnych fragmentów kodu. Wybranie opcji def z listy fragmentów kodu powoduje umieszczenie wybranego kodu w definicji funkcji. Możesz użyć klawisza Tab , aby przejść między wyróżnioną nazwą funkcji i argumentami:
Sprawdzanie dostępnych fragmentów kodu
Dostępne fragmenty kodu są widoczne w Menedżerze fragmentów kodu. Uzyskaj dostęp do tej funkcji w Menedżerze fragmentów kodu narzędzi>i wybierz język Python jako język:
Aby utworzyć własne fragmenty kodu, zobacz Przewodnik: tworzenie fragmentu kodu.
Jeśli piszesz świetny fragment kodu, który chcesz udostępnić, możesz opublikować go w gist i daj nam znać. Możemy ją uwzględnić w przyszłej wersji programu Visual Studio.
Poruszanie się po kodzie
Obsługa języka Python w programie Visual Studio umożliwia szybkie nawigowanie w kodzie, w tym biblioteki, dla których jest dostępny kod źródłowy. Biblioteki z kodem źródłowym paska nawigacyjnego, przejdź do definicji, przejdź do i znajdź wszystkie odwołania polecenia. Możesz również użyć przeglądarki obiektów programu Visual Studio.
Pasek nawigacyjny
Pasek nawigacyjny jest wyświetlany w górnej części każdego okna edytora i zawiera listę dwóch poziomów definicji. Lista rozwijana po lewej stronie zawiera definicje klas najwyższego poziomu i funkcji w bieżącym pliku. Na prawej liście rozwijanej jest wyświetlana lista definicji w zakresie widocznym po lewej stronie. W miarę poruszania się po edytorze listy są aktualizowane w celu wyświetlenia bieżącego kontekstu, a także możesz wybrać wpis z tych list, aby przejść bezpośrednio do.
Napiwek
Aby ukryć pasek nawigacyjny, przejdź do pozycji Narzędzia>Opcje>Edytor>tekstu Języka Python>Ogólne i wyczyść pasek Ustawienia> Navigation.
Przejdź do definicji
Polecenie Przejdź do definicji szybko przechodzi z użycia identyfikatora (takiego jak nazwa funkcji, klasa lub zmienna) do lokalizacji definicji kodu źródłowego. Aby wywołać polecenie, kliknij prawym przyciskiem myszy identyfikator i wybierz polecenie Przejdź do definicji lub umieść daszek w identyfikatorze i wybierz klawisz F12. Polecenie działa w kodzie i bibliotekach zewnętrznych, w których jest dostępny kod źródłowy. Jeśli kod źródłowy biblioteki jest niedostępny, funkcja Przejdź do definicji przechodzi do odpowiedniej import
instrukcji odwołania do modułu lub wyświetla błąd.
Przejdź do
Polecenie Edytuj>przejdź do (Ctrl+,) wyświetla pole wyszukiwania w edytorze, w którym można wpisać dowolny ciąg i zobaczyć możliwe dopasowania w kodzie definiującym funkcję, klasę lub zmienną zawierającą ten ciąg. Ta funkcja zapewnia podobną funkcję jak Przejdź do definicji , ale bez konieczności lokalizowania użycia identyfikatora.
Aby przejść do definicji tego identyfikatora, kliknij dwukrotnie dowolną nazwę lub wybierz nazwę za pomocą klawiszy strzałek, a następnie wprowadź.
Znajdź wszystkie odwołania
Funkcja Znajdź wszystkie odwołania jest pomocnym sposobem odnajdywania, gdzie dowolny identyfikator jest zdefiniowany i używany, w tym importów i przypisań. Aby wywołać polecenie, kliknij prawym przyciskiem myszy identyfikator i wybierz polecenie Znajdź wszystkie odwołania lub umieść daszek w identyfikatorze i wybierz klawisze Shift+F12. Dwukrotne kliknięcie elementu na liście powoduje przejście do jego lokalizacji.