Refaktoring kódu Pythonu v sadě Visual Studio
Opakované nasazení existujícího kódu a aktualizace kódu jsou běžnými úlohami pro vývojáře. Můžete chtít refaktorovat existující kód pro jiný účel a ušetřit čas tím, že nezapíšete celý nový kód. Kód můžete chtít vyčistit tak, aby odebral nepoužívané položky nebo aktualizoval importy a metody, aby byly aktuální s posledními verzemi.
Visual Studio poskytuje několik příkazů, které vám pomůžou automaticky transformovat a vyčistit zdrojový kód Pythonu:
- Přejmenování změní název vybrané třídy, metody nebo proměnné.
- Přidání importu poskytuje inteligentní značku pro přidání chybějícího importu.
- Odebrání nepoužívaných importů odstraní nepoužívané importy.
Požadavky
- Visual Studio. Pokud chcete nainstalovat produkt, postupujte podle kroků v části Instalace sady Visual Studio.
- Přístup k projektu kódu Pythonu s existujícím kódem
Přejmenování třídy, metody nebo proměnné
Pomocí příkazu Rename můžete změnit název konkrétního identifikátoru, včetně třídy, metody nebo proměnné. Visual Studio podporuje aktualizaci všech instancí identifikátoru nebo pouze konkrétních instancí, které určíte.
Následující kroky ukazují, jak v kódu použít příkaz Přejmenovat .
V kódu klikněte pravým tlačítkem myši na identifikátor, který chcete přejmenovat, a vyberte Přejmenovat. Stříšku můžete také umístit na identifikátor a v nabídce vybrat Upravit>refaktor>rename nebo použít klávesovou zkratku F2.
V dialogovém okně Přejmenovat zadejte nový název identifikátoru a vyberte OK:
V dalším dialogovém okně vyberte soubory a instance v kódu, které by měly používat nový název. Pokud chcete zobrazit náhled konkrétní změny, můžete vybrat jednotlivé instance:
Výběrem možnosti Použít provedete změny souborů zdrojového kódu.
V kódu klikněte pravým tlačítkem myši na identifikátor, který chcete přejmenovat, a vyberte Přejmenovat. Stříšku můžete také umístit na identifikátor a v nabídce vybrat Upravit>refaktorové>přejmenování nebo použít klávesovou zkratku Ctrl+R.
V dialogovém okně Přejmenovat zadejte nový název identifikátoru následovaného klávesou Enter:
Přidání příkazu importu
Pokud máte v kódu identifikátory, které chybí definice nebo podpůrné informace o typu, může vám Visual Studio pomoct problém vyřešit. Když umístíte stříšku na identifikátor, který nemá informace, sada Visual Studio zobrazí nalevo od kódu inteligentní značku (žárovku). Značka obsahuje příkazy pro přidání potřebných import
příkazů nebo from ... import
příkazů pro odpovídající identifikátor.
Následující kroky ukazují, jak pracovat s inteligentní značkou pro přidání importů do kódu.
V kódu umístěte stříšku na identifikátor, pro který Visual Studio zobrazí inteligentní značku (žárovku). V tomto příkladu se inteligentní značka zobrazí pro volání matematického modulu:
V nabídce inteligentních značek vyberte příkaz pro přidání potřebného modulu nebo zadání informací do souboru kódu. V tomto příkladu
import math
je vybrán příkaz pro přidání příkazu.Visual Studio nabízí
import
dokončování pro balíčky a moduly nejvyšší úrovně v aktuálním projektu a standardní knihovně. Visual Studio také nabízífrom ... import
dokončování pro dílčí moduly a dílčí balíčky a členy modulů. Dokončování zahrnuje funkce, třídy nebo exportovaná data.Po výběru možnosti potvrďte, že se v souboru provede očekávaná změna.
Visual Studio přidá
import
příkaz do horní části souboru kódu za další importy nebo do existujícíhofrom ... import
příkazu, pokud už je stejný modul importovaný. V tomto příkladu seimport math
příkaz přidá do horní části souboru za další importy:
Visual Studio se pokusí vyfiltrovat členy, které nejsou definované v modulu. Příkladem je modul importovaný do jiného modulu, který není podřízeným modulem importu. Mnohomodulůchch import sys
from xyz import sys
Dokončení importu sys
modulu z jiných modulů se nezobrazuje, i když chybí __all__
člen, který modul vyloučí sys
.
Podobně Visual Studio filtruje funkce importované z jiných modulů nebo integrovaného oboru názvů. Pokud modul importuje settrace
funkci z sys
modulu teoreticky, můžete funkci z daného modulu importovat. Nejlepší přístup je však použít import settrace from sys
přímo příkaz, takže Visual Studio tento příkaz nabízí konkrétně.
Nakonec předpokládejme, že modul je normálně vyloučený, ale obsahuje další hodnoty, které jsou zahrnuté jako název přiřazený s hodnotou v modulu. Visual Studio stále vyloučí import. Toto chování předpokládá, že hodnota by neměla být exportována, protože ji definuje jiný modul. Dalším přiřazením bude pravděpodobně fiktivní hodnota, která se také neexportuje.
Odebrání nepoužívaných importů
Při psaní kódu je snadné skončit příkazy import
pro moduly, které se vůbec nepoužívají. Vzhledem k tomu, že Visual Studio analyzuje váš kód, může automaticky určit, jestli import
je příkaz potřeba, a to tak, že se podívá na to, jestli se importovaný název použije v rámci oboru po provedení příkazu.
Následující kroky ukazují, jak odebrat nepoužívané importy v kódu.
Klikněte pravým tlačítkem na libovolné místo v editoru a vyberte Odebrat importy. Import můžete odebrat ze všech oborů nebo jenom z aktuálního oboru.
Visual Studio určuje, jestli v kódu nejsou nepoužívané moduly, a odebere odpovídající
import
příkazy.Po výběru možnosti potvrďte, že se v souboru provedly očekávané změny. V tomto příkladu Sada Visual Studio odebere tři nepoužívané moduly: binascii, pole a glob.
V kódu umístěte stříšku na
import
příkaz, pro který Visual Studio zobrazuje inteligentní značku (žárovku). V tomto příkladu se inteligentní značka zobrazí pro nepoužívané moduly binascii, pole a glob:Pokud chcete odebrat jenom vybraný modul, vyberte možnost Odebrat všechny nepoužívané importy nebo Odebrat nepoužitý import.
Po výběru možnosti potvrďte, že se změny v souboru provedly. V tomto příkladu Sada Visual Studio odebere tři nepoužívané moduly: binascii, pole a glob.
Důležité informace o použití příkazů refaktoringu
Před použitím příkazů refaktoringu si projděte následující aspekty.
Po spuštění příkazu refaktoringu můžete změny vrátit zpět pomocí příkazu Upravit>zpět. Příkaz Přejmenovat nabízí funkci Preview , abyste viděli změny před jejich aplikováním.
Visual Studio nebere v kódu v úvahu tok řízení. Pokud použijete identifikátor před tím, než se v kódu nachází podpůrná definice, například příkaz
import
, Visual Studio stále zpracovává identifikátor, jak se používá. Visual Studio očekává, že před voláním a přiřazením najde podpůrné definice identifikátorů.Visual Studio ignoruje všechny
from __future__
příkazy importu. Tyto příkazy jsou importy prováděné uvnitř definice třídy nebo pomocífrom ... import *
příkazů.