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:

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

  2. V dialogovém okně Přejmenovat zadejte nový název identifikátoru a vyberte OK:

    Screenshot that shows how to specify a different name for an identifier in Visual Studio 2019.

  3. 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:

    Screenshot that shows how to apply the new name to specific instances of an identifier and preview the changes in Visual Studio 2019.

  4. Výběrem možnosti Použít provedete změny souborů zdrojového kódu.

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

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

    Screenshot that shows how to specify a different name for an identifier in 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 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.

  1. 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:

    Screenshot that shows the smart tag for an identifier that needs an import statement added in Visual Studio 2019.

    Screenshot that shows the smart tag for an identifier that needs an import statement added in 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 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.

  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 za další importy:

    Screenshot that shows the import statement added after running the command from the smart tag in Visual Studio 2019.

    Screenshot that shows the import statement added after running the command from the smart tag in 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. Mnohomodulůchch import sysfrom 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.

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

    Screenshot that shows how to access the Remove Imports menu in Visual Studio 2019.

    Visual Studio určuje, jestli v kódu nejsou nepoužívané moduly, a odebere odpovídající import příkazy.

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

    Screenshot that shows the results of using the Remove Imports command to remove unused modules from the code in Visual Studio 2019.

  1. 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:

    Screenshot that shows how to access options to remove unused imports in 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 Sada Visual Studio odebere tři nepoužívané moduly: binascii, pole a glob.

    Screenshot that shows the results of using the Remove all unused imports command in 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ů.