Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Het hergebruik van bestaande code en het vernieuwen van code zijn algemene taken voor ontwikkelaars. U kunt bestaande code voor een ander doel herstructureren en tijd besparen door niet alle nieuwe code te schrijven. Mogelijk wilt u uw code opschonen om ongebruikte items te verwijderen of import- en methoden te vernieuwen, zodat ze actueel zijn met recente versies.
Visual Studio biedt verschillende opdrachten om u te helpen uw Python-broncode automatisch te transformeren en op te schonen:
- Wijzig de naam van een geselecteerde klasse, methode of variabele.
- Importeren toevoegen biedt een infolabel om een ontbrekende import toe te voegen.
- Niet-gebruikte importen verwijderen verwijdert ongebruikte importbewerkingen.
Vereiste voorwaarden
- Visual Studio. Volg de stappen in Visual Studio installeren om het product te installeren.
- Toegang tot een Python-codeproject met bestaande code.
De naam van een klasse, methode of variabele wijzigen
U kunt de opdracht Naam wijzigen gebruiken om de naam voor een specifieke id te wijzigen, inclusief een klasse, methode of variabele. Visual Studio ondersteunt het bijwerken van alle exemplaren van de id of alleen de specifieke exemplaren die u aangeeft.
In de volgende stappen ziet u hoe u de opdracht Naam wijzigen gebruikt in uw code.
Klik in uw code met de rechtermuisknop op de id die u wilt wijzigen en selecteer Naam wijzigen. U kunt de cursor ook op een identifier plaatsen en bewerken>herstructureren>hernoemen in het menu selecteren, of de sneltoets Ctrl+R gebruiken.
Typ in de Naam wijzigen dialoogvenster de nieuwe naam voor de identifier en druk op Enter.
Een importstatement toevoegen
Als u id's in uw code hebt die ontbrekende definities of ondersteunende typegegevens bevatten, kan Visual Studio u helpen het probleem op te lossen. Wanneer u de cursor op een identifier plaatst die geen informatie bevat, verschijnt er in Visual Studio links van de code een smart tag (gloeilamp). De tag bevat commando's om de benodigde import of from ... import instructies toe te voegen voor de bijbehorende identificator.
In de volgende stappen ziet u hoe u met de infotag kunt werken om importbewerkingen toe te voegen in uw code.
Plaats de cursor in uw code op een identificator waarvoor Visual Studio de slimme tag (gloeilamp) weergeeft. In dit voorbeeld wordt het infolabel weergegeven voor de aanroep naar de wiskundige module:
Selecteer in het infolabelmenu de opdracht om de benodigde module toe te voegen of typ informatie aan uw codebestand. In dit voorbeeld is de opdracht om de
import mathinstructie toe te voegen geselecteerd.Visual Studio biedt
importvoltooiingen voor pakketten en modules op het hoogste niveau in het huidige project en de standaardbibliotheek. Visual Studio biedt ookfrom ... importaanvullingen voor submodules, subpakketten en moduleleden. Voltooiingen zijn functies, klassen of geëxporteerde gegevens.Nadat u een optie hebt geselecteerd, bevestigt u dat de verwachte wijziging in uw bestand is aangebracht.
Visual Studio voegt de
importinstructie boven aan het codebestand toe na andere importbewerkingen of in een bestaandefrom ... importinstructie als dezelfde module al is geïmporteerd. In dit voorbeeld wordt deimport mathinstructie boven aan het bestand toegevoegd na de andere importbewerkingen:
Visual Studio probeert leden te filteren die niet zijn gedefinieerd in een module. Een voorbeeld is een module die is geïmporteerd in een andere module die geen onderdeel is van de importerende module. Veel modules gebruiken de import sys statement in plaats van from xyz import sys. U ziet geen voltooiing voor het importeren van de sys module uit andere modules, zelfs als de modules een __all__ lid missen dat de sys module uitsluit.
Op dezelfde manier filtert Visual Studio functies die worden geïmporteerd uit andere modules of de ingebouwde naamruimte. Als een module de settrace functie importeert uit de sys module, kunt u in theorie de functie uit die module importeren. De beste aanpak is echter om de import settrace from sys instructie rechtstreeks te gebruiken, dus Visual Studio biedt die instructie specifiek aan.
Stel dat een module normaal gesproken wordt uitgesloten, maar dat deze andere waarden bevat, zoals een naam die is toegewezen aan een waarde in de module. Visual Studio sluit de import nog steeds uit. Bij dit gedrag wordt ervan uitgegaan dat de waarde niet mag worden geëxporteerd omdat deze door een andere module wordt gedefinieerd. Een andere toewijzing is waarschijnlijk een dummywaarde die ook niet wordt geëxporteerd.
Ongebruikte importbewerkingen verwijderen
Wanneer u code schrijft, is het eenvoudig om te eindigen met import instructies voor modules die helemaal niet worden gebruikt. Omdat Visual Studio uw code analyseert, kan deze automatisch bepalen of een import instructie nodig is door te kijken of de geïmporteerde naam binnen het bereik wordt gebruikt nadat de instructie is uitgevoerd.
De volgende stappen laten zien hoe u ongebruikte importbewerkingen in uw code verwijdert.
Plaats de caret in uw code op een
importinstructie waarvoor Visual Studio het infolabel (gloeilamp) weergeeft. In dit voorbeeld wordt het infolabel weergegeven voor de ongebruikte modules binascii, matrix en glob:
Selecteer de optie Alle ongebruikte importbewerkingen verwijderen of De optie niet-gebruikte import verwijderen om alleen de geselecteerde module te verwijderen.
Nadat u een optie hebt geselecteerd, bevestigt u dat de wijzigingen in het bestand zijn aangebracht. In dit voorbeeld verwijdert Visual Studio de drie ongebruikte modules: binascii, matrix en glob.
Overwegingen bij het gebruik van herstructureringsopdrachten
Bekijk de volgende overwegingen voordat u de herstructureringsopdrachten gebruikt.
Nadat u een opdracht voor herstructureren hebt uitgevoerd, kunt u de wijzigingen herstellen met behulp van de opdracht Bewerken
Ongedaan maken . De opdracht Naam wijzigen biedt een preview-functie , zodat u wijzigingen kunt zien voordat ze worden toegepast. Visual Studio houdt geen rekening met de controlestroom in uw code. Als u een id gebruikt voordat de ondersteunende definitie aanwezig is in de code, zoals een
importinstructie, verwerkt Visual Studio nog steeds de id zoals gebruikt. Visual Studio verwacht ondersteunende definities voor id's te vinden voordat u aanroepen en toewijzingen uitvoert.Visual Studio negeert alle
from __future__importinstructies. Deze instructies zijn importbewerkingen die worden uitgevoerd in een klassedefinitie of met behulp van instructiesfrom ... import *.