Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Повторное использованием существующего кода и обновления кода являются общими задачами для разработчиков. Возможно, потребуется рефакторинг существующего кода для другой цели и сэкономить время, не записав весь новый код. Может потребоваться очистить код, чтобы удалить неиспользуемые элементы или обновить импорты и методы, чтобы они были актуальны с последними версиями.
Visual Studio предоставляет несколько команд для автоматического преобразования и очистки исходного кода Python:
- Переименование изменяет имя выбранного класса, метода или переменной.
- Добавить инструкцию import — предоставляет смарт-тег для добавления отсутствующей команды импорта.
- Удаление неиспользуемых импортов удаляет неиспользуемые импорты.
Необходимые компоненты
- Visual Studio. Чтобы установить продукт, выполните действия, описанные в разделе "Установка Visual Studio".
- Доступ к проекту кода Python с существующим кодом.
Переименование класса, метода или переменной
Команду "Переименовать" можно использовать для изменения имени определенного идентификатора, включая класс, метод или переменную. Visual Studio поддерживает обновление всех экземпляров идентификатора или только указанных экземпляров.
Ниже показано, как использовать команду "Переименовать " в коде.
В коде щелкните правой кнопкой мыши идентификатор, который нужно переименовать, и выберите "Переименовать". Вы также можете поместить курсор на идентификатор и выбрать изменить>рефакторинг>переименования в меню или использовать сочетание клавиш F2.
В диалоговом окне переименования введите новое имя идентификатора и нажмите кнопку ОК:
В следующем диалоговом окне выберите файлы и экземпляры в коде, которые должны использовать новое имя. Вы можете выбрать отдельный экземпляр для предварительного просмотра конкретных изменений:
Нажмите Применить, чтобы внести изменения в файлы исходного кода.
В коде щелкните правой кнопкой мыши идентификатор, который нужно переименовать, и выберите "Переименовать". Вы также можете поместить курсор на идентификатор и выбрать пункт "Изменить>рефакторинг>переименования" в меню или использовать сочетание клавиш CTRL+R.
В диалоговом окне "Переименовать" введите новое имя идентификатора, за которым следует ввод:
Добавление инструкции импорта
Если в коде есть идентификаторы, отсутствующие определения или вспомогательные сведения о типе, Visual Studio поможет устранить проблему. Когда вы помещаете курсор на идентификатор, который не содержит сведений, Visual Studio отображает смарт-тег (лампочку) слева от кода. Тег перечисляет команды для добавления необходимых import или from ... import инструкций для соответствующего идентификатора.
Ниже показано, как работать с смарт-тегом для добавления импорта в код.
В коде поместите курсор на идентификатор, для которого Visual Studio отображает смарт-тег (лампочка). В этом примере смарт-тег отображается для вызова математического модуля:
В меню смарт-тегов выберите команду, чтобы добавить необходимые сведения о модуле или типе в файл кода. В этом примере выбрана команда для добавления инструкции
import math.Visual Studio предоставляет завершения
importдля модулей и пакетов верхнего уровня в текущем проекте и стандартной библиотеке. Visual Studio также предлагаетfrom ... importзавершения для вложенных модулей и подпакетов и элементов модуля. В эти завершения входят функции, классы и экспортированные данные.После выбора параметра убедитесь, что в файл внесены ожидаемые изменения.
Visual Studio добавляет инструкцию
importв верхней части файла кода после других импортов или в существующуюfrom ... importинструкцию, если тот же модуль уже импортирован. В этом примереimport mathинструкция добавляется в верхней части файла после другого импорта:
Visual Studio пытается отфильтровать элементы, которые не определены в модуле. Примером является модуль, импортированный в другой модуль, который не является дочерним элементом импортируемого модуля. Многие модули используют инструкцию import sys , а не from xyz import sys. Вы не видите завершения импорта sys модуля из других модулей, даже если модули отсутствуют __all__ , который исключает sys модуль.
Аналогичным образом Visual Studio фильтрует функции, импортированные из других модулей или встроенного пространства имен. Если модуль импортирует settrace функцию из sys модуля, то в теории можно импортировать функцию из этого модуля. Однако оптимальным подходом является использование инструкции import settrace from sys напрямую, поэтому Visual Studio специально предлагает этот оператор.
Наконец, предположим, что модуль обычно исключается, но он имеет другие значения, включенные как имя, назначенное значением в модуле. Visual Studio по-прежнему исключает импорт. Это поведение предполагает, что значение не должно быть экспортировано, так как другой модуль определяет его. Другое назначение, скорее всего, будет фиктивным значением, которое также не экспортируется.
Удаление неиспользуемых инструкций import
При написании кода легко import получить инструкции для модулей, которые не используются вообще. Так как Visual Studio анализирует код, он может автоматически определитьimport, требуется ли оператор, посмотрев, используется ли импортированное имя в область после выполнения инструкции.
Ниже показано, как удалить неиспользуемые импорты в коде.
Щелкните правой кнопкой мыши в любом месте редактора и выберите пункт "Удалить импорт". Вы можете удалить импорт из всех областей или только текущую область.
Visual Studio определяет, есть ли в коде неиспользуемые модули и удаляет соответствующие
importинструкции.После выбора параметра убедитесь, что ожидаемые изменения внесены в файл. В этом примере Visual Studio удаляет три неиспользуемых модуля: binascii, array и glob.
В коде поместите курсор на инструкцию
import, для которой Visual Studio отображает смарт-тег (лампочка). В этом примере смарт-тег отображается для неиспользуемых модулей binascii, массива и глоба:
Выберите параметр "Удалить все неиспользуемые импорты" или "Удалить неиспользуемый импорт", чтобы удалить только выбранный модуль.
После выбора параметра убедитесь, что изменения внесены в файл. В этом примере Visual Studio удаляет три неиспользуемых модуля: binascii, array и glob.
Рекомендации при использовании команд рефакторинга
Прежде чем использовать команды рефакторинга, ознакомьтесь со следующими рекомендациями.
После выполнения команды рефакторинга можно отменить изменения изменения с помощью команды "Изменить>отмену". Команда "Переименовать " предлагает функцию предварительной версии , чтобы вы могли видеть изменения перед их применением.
Visual Studio не учитывает поток управления в коде. Если вы используете идентификатор, прежде чем вспомогательное определение присутствует в коде, например
importоператор, Visual Studio по-прежнему обрабатывает идентификатор в качестве используемого. Visual Studio ожидает найти вспомогательные определения идентификаторов перед вызовами и назначениями.Visual Studio игнорирует все
from __future__инструкции импорта. Эти инструкции являются импортами, выполняемыми внутри определения класса или с помощьюfrom ... import *инструкций.
