Sdílet prostřednictvím


Refaktorujte Python kód v aplikaci 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:

Požadavky

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 .

  1. V kódu klikněte pravým tlačítkem myši na identifikátor, který chcete přejmenovat, a vyberte Přejmenovat. Kurzor můžete také umístit na identifikátor a v nabídce vybrat Upravit>Refaktor>Přejmenovat nebo použít klávesovou zkratku Ctrl+R.

  2. V dialogovém okně Přejmenovat zadejte nový název identifikátoru následovaného klávesou Enter:

    Snímek obrazovky, který ukazuje, jak zadat jiný název identifikátoru v sadě Visual Studio 2022

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 kurzor na identifikátor, ke kterému chybí informace, Visual Studio zobrazí nalevo od kódu chytrou značku (žárovku). Značka obsahuje příkazy pro přidání potřebných import nebo from ... import výrazů 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.

  1. V kódu umístěte kurzor na identifikátor, pro který Visual Studio zobrazí chytrý tag (symbol žárovky). V tomto příkladu se inteligentní značka zobrazí pro volání matematického modulu:

    Snímek obrazovky znázorňující inteligentní značku identifikátoru, který potřebuje příkaz importu přidaný v sadě Visual Studio 2022

  2. 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 je vybrán příkaz pro přidání příkazu import math.

    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.

  3. 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ího from ... import příkazu, pokud už je stejný modul importovaný. V tomto příkladu se import math příkaz přidá do horní části souboru před ostatní importy:

    Snímek obrazovky znázorňující příkaz importu přidaný po spuštění příkazu z inteligentní značky v sadě Visual Studio 2022

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. Mnoho modulů používá prohlášení import sys namísto from xyz import sys. Dokončení importu modu sys z jiných modulů se nezobrazuje, i když chybí člen __all__, který vylučuje modul 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 příkaz import settrace from sys přímo, a právě z tohoto důvodu jej Visual Studio nabízí.

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 s 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.

  1. V kódu umístěte kurzor na import příkaz, pro který Visual Studio zobrazuje chytrou značku (žárovku). V tomto příkladu se inteligentní značka zobrazí pro nepoužívané moduly binascii, array a glob:

    Snímek obrazovky, který ukazuje, jak získat přístup k možnostem odebrání nepoužívaných importů v sadě Visual Studio 2022

  2. Pokud chcete odebrat jenom vybraný modul, vyberte možnost Odebrat všechny nepoužívané importy nebo Odebrat nepoužitý import .

  3. Po výběru možnosti potvrďte, že se změny v souboru provedly. V tomto příkladu Visual Studio odebere tři nepoužívané moduly: binascii, array a glob.

    Snímek obrazovky znázorňující výsledky použití příkazu Odebrat všechny nepoužívané importy v sadě Visual Studio 2022

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ů.