Úprava kódu Pythonu a použití IntelliSense
Vzhledem k tomu, že v editoru kódu trávíte většinu času vývoje, poskytuje podpora Pythonu v sadě Visual Studio funkce, které vám pomůžou zvýšit produktivitu. Mezi funkce patří zvýrazňování syntaxe IntelliSense, automatické dokončování, nápověda k podpisu, přepsání metod, vyhledávání a navigace.
Editor kódu je integrovaný s interaktivním oknem v sadě Visual Studio. Při práci je snadné vyměňovat kód mezi těmito dvěma okny. Další informace najdete v tématu Krok 3 kurzu: Použití interaktivního okna REPL a použití interaktivního okna - Odeslat do Interaktivního příkazu.
Osnova vám pomůže soustředit se na konkrétní části kódu. Obecná dokumentace k úpravám kódu v sadě Visual Studio najdete v tématu Funkce editoru kódu.
Prohlížeč objektů sady Visual Studio umožňuje zkontrolovat třídy Pythonu definované v jednotlivých modulech a funkce definované v těchto třídách. K této funkci se dostanete v nabídce Zobrazit nebo pomocí klávesové zkratky Ctrl+Alt+J.
Použití funkcí IntelliSense
IntelliSense poskytuje dokončování, nápovědu k podpisu, rychlé informace a barvení kódu. Visual Studio 2017 verze 15.7 a novější podporují také nápovědy k typům.
Pro zvýšení výkonu závisí IntelliSense v sadě Visual Studio 2017 verze 15.5 a starší na databázi dokončení vygenerované pro každé prostředí Pythonu ve vašem projektu. Pokud přidáváte, odebíráte nebo aktualizujete balíčky, budete možná muset databázi aktualizovat. Stav databáze se zobrazuje v okně Prostředí Pythonu (průvodce Průzkumník řešení) na kartě IntelliSense. Další informace naleznete v tématu Prostředí okna reference.
Visual Studio 2017 verze 15.6 a novější používá jiný způsob, jak poskytnout dokončování IntelliSense, které nejsou závislé na databázi.
Dokončení
Dokončování se zobrazí jako příkazy, identifikátory a další slova, která lze správně zadat v aktuálním umístění editoru. IntelliSense naplní seznam možností na základě kontextu a filtruje nesprávné nebo rušivé položky. Dokončování se často aktivuje tak, že zadáte různé příkazy (například import
) a operátory (včetně tečky), ale můžou se kdykoli zobrazit tak, že vyberou klávesovou zkratku Ctrl+J +Mezerník.
Když je seznam dokončení otevřený, můžete požadované dokončení vyhledat pomocí kláves se šipkami, myší nebo pokračováním v psaní. Při psaní dalších písmen se seznam dále filtruje, aby zobrazoval pravděpodobné dokončení. Můžete také použít klávesové zkratky, například:
- Zadejte písmena, která nejsou na začátku názvu, například "parsovat" a najít "argparse".
- Zadejte pouze písmena, která jsou na začátku slov, například "abc", a vyhledejte "AbstractBaseClass" nebo "air", abyste našli "as_integer_ratio".
- Přeskočte písmena, například "b64", abyste našli "base64".
Několik příkladů:
Dokončování členů se automaticky zobrazí, když zadáte tečku za proměnnou nebo hodnotou spolu s metodami a atributy potenciálních typů. Pokud může být proměnná více než jeden typ, seznam obsahuje všechny možnosti ze všech typů. Zobrazí se další informace, které typy podporují jednotlivé dokončování. Pokud všechny možné typy podporují dokončení, nezobrazí se žádná poznámka.
Ve výchozím nastavení se nezobrazují členy "dunder" (členy začínající a končící dvojitým podtržítkem). Obecně platí, že tito členové by neměli být přístupní přímo. Pokud potřebujete použít dunder, zadejte úvodní dvojité podtržítko a přidejte do seznamu tyto dokončování:
from ... import
Příkazy import
zobrazují seznam modulů, které je možné importovat. Příkaz from ... import
vytvoří seznam obsahující členy, které lze importovat ze zadaného modulu.
except
Příkazy raise
zobrazují seznamy tříd, které budou pravděpodobně typy chyb. Seznam nemusí obsahovat všechny uživatelem definované výjimky, ale pomáhá rychle najít vhodné předdefinované výjimky:
Výběr @ symbolu (na) spustí dekorátor a zobrazí potenciální dekorátory. Mnohé z těchto položek nejsou použitelné jako dekorátory. V dokumentaci ke knihovně zjistěte, který dekorátor se má použít.
Další informace naleznete v tématu Možnosti – výsledky dokončení.
Nápověda k typu
Nápovědy k typům jsou k dispozici v sadě Visual Studio 2017 verze 15.7 a novější.
"Nápověda typu" v Pythonu 3.5+ (PEP 484 (python.org) je syntaxe poznámek pro funkce a třídy, které označují typy argumentů, návratové hodnoty a atributy třídy. IntelliSense zobrazí nápovědu k typu, když najedete myší na volání funkcí, argumenty a proměnné, které mají tyto poznámky.
V následujícím příkladu Vector
je třída deklarována jako typ List[float]
a scale
funkce obsahuje rady typu pro své argumenty i návratovou hodnotu. Když najedete myší na volání této funkce, zobrazí se rady typu:
V dalším příkladu uvidíte, jak se v automaticky otevíraných oknech IntelliSense u atributu zobrazují anotované atributy Employee
třídy:
Je také užitečné ověřit rady typu v celém projektu, protože chyby se obvykle nezobrazují do doby běhu. Pro tento účel visual Studio integruje standardní oborový nástroj Mypy prostřednictvím příkazu místní nabídky Python>Spustit Mypy v Průzkumník řešení:
Spuštěním příkazového řádku v případě potřeby nainstalujete balíček Mypy. Visual Studio pak spustí Mypy a ověří rady typu v každém souboru Pythonu v projektu. Chyby se zobrazí v okně Seznam chyb sady Visual Studio. Výběrem položky v okně přejdete na příslušný řádek v kódu.
Jako jednoduchý příklad obsahuje následující definice funkce nápovědu k typu, která označuje, že input
argument je typ str
, zatímco volání této funkce se pokusí předat celé číslo:
def commas_to_colons(input: str):
items = input.split(',')
items = [x.strip() for x in items]
return ':'.join(items)
commas_to_colons(1)
Spuštěním příkazu Mypy v tomto kódu se vygeneruje následující chyba:
Poznámka:
Ve verzích Pythonu před verzí 3.5 sada Visual Studio také zobrazuje rady typu, které zadáte prostřednictvím souborů zástupných procedur Typeshed (.pyi). Soubory s zástupnými procedurami můžete použít, když nechcete do kódu zahrnout rady typu přímo nebo vytvořit nápovědu pro knihovnu, která je přímo nepoužívá. Další informace najdete v tématu Vytváření zástupných procedur pro moduly Pythonu na wikiwebu projektu Mypy.
Visual Studio v komentářích v současné době nepodporuje rady typu.
Nápověda k podpisu
Při psaní kódu, který volá funkci, se zobrazí nápověda podpisu, když zadáte levou závorku (
. Zobrazí dostupnou dokumentaci a informace o parametrech. Nápovědu k podpisu můžete získat pomocí klávesové zkratky Ctrl+Shift+Space uvnitř volání funkce. Zobrazené informace závisí na řetězcích dokumentace ve zdrojovém kódu funkce, ale obsahují všechny výchozí hodnoty.
Tip
Nápovědu k podpisu zakážete tak, že přejdete na >Příkazy Možnosti>textového editoru>Pythonu>Obecné. Zrušte zaškrtnutí políčka Informace o parametru dokončení příkazu>.
Rychlé informace
Když najedete myší na identifikátor, zobrazí se popis rychlé informace. V závislosti na identifikátoru můžou rychlé informace zobrazovat potenciální hodnoty nebo typy, libovolnou dostupnou dokumentaci, návratové typy a umístění definic:
Obarvení kódu
Barvení kódu používá informace z analýzy kódu k barevným proměnným, příkazům a dalším částem kódu. Proměnné odkazující na moduly nebo třídy mohou být zobrazeny jinou barvou než funkce nebo jiné hodnoty. Názvy parametrů se můžou zobrazovat v jiné barvě než místní nebo globální proměnné. Ve výchozím nastavení se funkce nezobrazují tučně.
Pokud chcete barvy přizpůsobit, přejděte na Možnosti>nástrojů>Písma a barvy prostředí.> V seznamu Zobrazit položky upravte požadované položky Pythonu:
Vložení fragmentů kódu
Fragmenty kódu jsou fragmenty kódu, které lze do souborů vložit pomocí klávesové zkratky a výběru klávesy Tab. Můžete také použít příkazy Edit>IntelliSense>Insert Snippet and Surround With , select Python a then select the desired fragment.
Jedná se například o zástupce fragmentu kódu, class
který vloží definici třídy. Fragment kódu se zobrazí v seznamu automatického dokončování při psaní class
:
Výběr tabulátoru vygeneruje zbytek třídy. Potom můžete psát přes seznam názvů a bází, přecházet mezi zvýrazněnými poli pomocí klávesy Tab a výběrem klávesy Enter začít psát text.
Příkazy nabídky
Když použijete příkaz nabídky Upravit>intelliSense>Vložit fragment kódu, nejprve vyberete Python a pak vyberete požadovaný fragment kódu:
Příkaz Upravit>funkci IntelliSense>Obklopit do textového editoru umístí aktuální výběr do zvoleného strukturálního prvku. Předpokládejme, že jste měli kus kódu jako v následujícím příkladu:
sum = 0
for x in range(1, 100):
sum = sum + x
Výběrem tohoto kódu a zvolením příkazu Obklopit se zobrazí seznam dostupných fragmentů kódu. Volba def ze seznamu fragmentů kódu umístí vybraný kód do definice funkce. Pomocí klávesy Tab můžete přecházet mezi zvýrazněným názvem funkce a argumenty:
Prozkoumání dostupných fragmentů kódu
Dostupné fragmenty kódu můžete zobrazit ve Správci fragmentů kódu. Získejte přístup k této funkci ze Správce fragmentů kódu nástrojů>a jako jazyk vyberte Python:
Pokud chcete vytvořit vlastní fragmenty kódu, přečtěte si téma Návod: Vytvoření fragmentu kódu.
Pokud napíšete skvělý fragment kódu, který chcete sdílet, můžete ho publikovat v gistu a dejte nám vědět. Možná ho budeme moct zahrnout do budoucí verze sady Visual Studio.
Navigace v kódu
Podpora Pythonu v sadě Visual Studio nabízí několik způsobů, jak rychle procházet kód, včetně knihoven, pro které je zdrojový kód k dispozici. Knihovny se zdrojovým kódem pro navigační panel, Přejít k definici, Přejít na a Najít všechny odkazy můžete najít příkazy. Můžete také použít prohlížeč objektů sady Visual Studio.
Navigační panel
Navigační panel se zobrazí v horní části každého okna editoru a obsahuje dvouúrovňový seznam definic. V levém rozevíracím seznamu jsou v aktuálním souboru definice třídy nejvyšší úrovně a funkce. V pravém rozevíracím seznamu se zobrazí seznam definic v oboru zobrazeném vlevo. Při procházení v editoru se seznamy aktualizují tak, aby zobrazovaly aktuální kontext, a můžete také vybrat položku z těchto seznamů a přejít přímo na.
Tip
Navigační panel skryjete tak, že přejdete na >Příkazy Možnosti>textového editoru>Pythonu>Obecné a vymažete Nastavení> Navigační panel.
Přejít k definici
Příkaz Přejít k definici rychle přeskočí z použití identifikátoru (například názvu funkce, třídy nebo proměnné) na umístění definice zdrojového kódu. Pokud chcete vyvolat příkaz, klikněte pravým tlačítkem myši na identifikátor a vyberte Přejít k definici nebo umístěte stříšku do identifikátoru a vyberte F12. Příkaz funguje napříč kódem a externími knihovnami, ve kterých je zdrojový kód dostupný. Pokud zdrojový kód knihovny není dostupný, přejít k definici přeskočí na příslušný import
příkaz pro odkaz na modul nebo zobrazí chybu.
Go To
Příkaz Upravit>přejít na (Ctrl+)) zobrazí vyhledávací pole v editoru, kde můžete zadat libovolný řetězec a zobrazit možné shody v kódu, který definuje funkci, třídu nebo proměnnou obsahující tento řetězec. Tato funkce poskytuje podobnou funkci jako Přejít k definici , aniž byste museli najít použití identifikátoru.
Pokud chcete přejít k definici tohoto identifikátoru, poklikejte na libovolný název nebo vyberte název pomocí kláves se šipkami a enter.
Najít všechny odkazy
Funkce Najít všechny odkazy je užitečný způsob, jak zjistit, kde je definovaný i použitý libovolný identifikátor, včetně importů a přiřazení. Pokud chcete vyvolat příkaz, klikněte pravým tlačítkem myši na identifikátor a vyberte Najít všechny odkazy nebo umístěte stříšku do identifikátoru a vyberte Shift+F12. Poklikáním na položku v seznamu přejdete na jeho umístění.