Bagikan melalui


Merefaktor kode Python di Visual Studio

Menggunakan kembali kode yang ada dan kode refresh adalah tugas umum untuk pengembang. Anda mungkin ingin merefaktor kode yang ada untuk tujuan lain dan menghemat waktu dengan tidak menulis semua kode baru. Anda mungkin ingin membersihkan kode untuk menghapus item yang tidak digunakan atau menyegarkan impor dan metode sehingga saat ini dengan versi terbaru.

Visual Studio menyediakan beberapa perintah untuk membantu Anda mengubah dan membersihkan kode sumber Python anda secara otomatis:

Prasyarat

  • Visual Studio. Untuk menginstal produk, ikuti langkah-langkah di Menginstal Visual Studio.
  • Akses ke proyek kode Python dengan kode yang ada.

Mengganti nama kelas, metode, atau variabel

Anda dapat menggunakan perintah Ganti Nama untuk mengubah nama pengidentifikasi tertentu, termasuk kelas, metode, atau variabel. Visual Studio mendukung pembaruan semua instans pengidentifikasi atau hanya instans tertentu yang Anda tunjukkan.

Langkah-langkah berikut menunjukkan cara menggunakan perintah Ganti Nama dalam kode Anda.

  1. Dalam kode Anda, klik kanan pengidentifikasi yang ingin Anda ganti namanya dan pilih Ganti Nama. Anda juga dapat menempatkan tanda sisipan pada pengidentifikasi dan memilih Edit>Refaktor>Ganti Nama dari menu, atau menggunakan pintasan keyboard adalah F2.

  2. Dalam dialog Ganti Nama, masukkan nama baru untuk pengidentifikasi dan pilih OK:

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

  3. Dalam dialog berikutnya, pilih file dan instans dalam kode Anda yang harus menggunakan nama baru. Anda dapat memilih instans individual untuk mempratinjau perubahan tertentu:

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

  4. Pilih Terapkan untuk membuat perubahan pada file kode sumber Anda.

  1. Dalam kode Anda, klik kanan pengidentifikasi yang ingin Anda ganti namanya dan pilih Ganti Nama. Anda juga dapat menempatkan tanda sisipan pada pengidentifikasi dan memilih Edit>Refaktor>Ganti Nama dari menu, atau menggunakan pintasan keyboard Ctrl+R.

  2. Dalam dialog Ganti Nama, ketik nama baru untuk pengidentifikasi diikuti dengan Enter:

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

Menambahkan pernyataan impor

Jika Anda memiliki pengidentifikasi dalam kode yang kehilangan definisi atau informasi jenis pendukung, Visual Studio dapat membantu Anda memperbaiki masalah tersebut. Saat Anda menempatkan tanda sisipan pada pengidentifikasi yang tidak memiliki informasi, Visual Studio menampilkan tag pintar (bola lampu) di sebelah kiri kode. Tag mencantumkan perintah untuk menambahkan pernyataan atau from ... import yang diperlukan import untuk pengidentifikasi yang sesuai.

Langkah-langkah berikut menunjukkan cara bekerja dengan tag pintar untuk menambahkan impor dalam kode Anda.

  1. Dalam kode Anda, letakkan tanda sisipan pada pengidentifikasi tempat Visual Studio menampilkan tag pintar (bola lampu). Dalam contoh ini, tag pintar ditampilkan untuk panggilan ke modul matematika:

    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. Pada menu tag pintar, pilih perintah untuk menambahkan modul yang diperlukan atau ketik informasi ke file kode Anda. Dalam contoh ini, perintah untuk menambahkan import math pernyataan dipilih.

    Visual Studio menawarkan penyelesaian import untuk paket dan modul tingkat atas dalam proyek saat ini dan pustaka standar. Visual Studio juga menawarkan from ... import penyelesaian untuk submodul dan subpaket dan anggota modul. Penyelesaian mencakup fungsi, kelas, atau data yang diekspor.

  3. Setelah Anda memilih opsi, konfirmasikan perubahan yang diharapkan dilakukan pada file Anda.

    Visual Studio menambahkan import pernyataan di bagian atas file kode Anda setelah impor lain, atau ke pernyataan yang ada from ... import jika modul yang sama sudah diimpor. Dalam contoh ini, import math pernyataan ditambahkan di bagian atas file setelah impor lainnya:

    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 mencoba memfilter anggota yang tidak ditentukan dalam modul. Contohnya adalah sebagai modul yang diimpor ke modul lain yang bukan anak dari modul impor. Banyak modul menggunakan import sys pernyataan daripada from xyz import sys. Anda tidak melihat penyelesaian untuk mengimpor sys modul dari modul lain meskipun modul kehilangan __all__ anggota yang mengecualikan sys modul.

Demikian pula, Visual Studio memfilter fungsi yang diimpor dari modul lain atau namespace bawaan. Jika modul mengimpor settrace fungsi dari sys modul, secara teori, Anda dapat mengimpor fungsi dari modul tersebut. Namun, pendekatan terbaik adalah menggunakan pernyataan secara langsung, sehingga Visual Studio secara khusus menawarkan pernyataan tersebut import settrace from sys .

Terakhir, misalkan modul biasanya dikecualikan, tetapi memiliki nilai lain yang disertakan seperti nama yang ditetapkan dengan nilai dalam modul. Visual Studio masih mengecualikan impor. Perilaku ini mengasumsikan nilai tidak boleh diekspor karena modul lain mendefinisikannya. Penugasan lain kemungkinan adalah nilai dummy yang juga tidak diekspor.

Hapus impor yang tidak digunakan

Saat Anda menulis kode, mudah untuk berakhir dengan import pernyataan untuk modul yang tidak digunakan. Karena Visual Studio menganalisis kode Anda, Visual Studio dapat secara otomatis menentukan apakah import pernyataan diperlukan dengan melihat apakah nama yang diimpor digunakan dalam cakupan setelah pernyataan terjadi.

Langkah-langkah berikut menunjukkan cara menghapus impor yang tidak digunakan dalam kode Anda.

  1. Gunakan klik kanan di mana saja di editor dan pilih Hapus Impor. Anda dapat menghapus impor dari Semua Cakupan atau hanya Cakupan Saat Ini.

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

    Visual Studio menentukan apakah ada modul yang tidak digunakan dalam kode Anda dan menghapus pernyataan yang import sesuai.

  2. Setelah Anda memilih opsi, konfirmasikan perubahan yang diharapkan dilakukan pada file Anda. Dalam contoh ini, Visual Studio menghapus tiga modul yang tidak digunakan: binascii, array, dan glob.

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

  1. Dalam kode Anda, letakkan tanda sisipan pada import pernyataan di mana Visual Studio menampilkan tag pintar (bola lampu). Dalam contoh ini, tag pintar ditampilkan untuk modul binascii, array, dan glob yang tidak digunakan:

    Screenshot that shows how to access options to remove unused imports in Visual Studio 2022.

  2. Pilih opsi Hapus semua impor yang tidak digunakan atau Hapus impor yang tidak digunakan untuk menghapus modul yang dipilih saja.

  3. Setelah Anda memilih opsi, konfirmasikan perubahan yang dibuat pada file Anda. Dalam contoh ini, Visual Studio menghapus tiga modul yang tidak digunakan: binascii, array, dan glob.

    Screenshot that shows the results of using the Remove all unused imports command in Visual Studio 2022.

Pertimbangan saat menggunakan perintah pemfaktoran ulang

Sebelum Anda menggunakan perintah refaktor, tinjau pertimbangan berikut.

  • Setelah menjalankan perintah pemfaktoran ulang, Anda dapat mengembalikan perubahan dengan menggunakan perintah Edit>Batalkan. Perintah Ganti Nama menawarkan fitur Pratinjau , sehingga Anda dapat melihat perubahan sebelum diterapkan.

  • Visual Studio tidak memperhitungkan alur kontrol dalam kode Anda. Jika Anda menggunakan pengidentifikasi sebelum definisi pendukung ada dalam kode, seperti import pernyataan, Visual Studio masih memproses pengidentifikasi seperti yang digunakan. Visual Studio mengharapkan untuk menemukan definisi pendukung untuk pengidentifikasi sebelum Anda melakukan panggilan dan penugasan.

  • Visual Studio mengabaikan semua from __future__ pernyataan impor. Pernyataan ini adalah impor yang dilakukan di dalam definisi kelas atau dengan menggunakan from ... import * pernyataan.