Gaya Python: 5 alat untuk membersihkan kode Python Anda

Secara teori, kode Python apa pun tidak apa-apa asalkan secara sintaksis benar dan berjalan sebagaimana mestinya. Dalam praktiknya, Anda ingin mengadopsi gaya yang konsisten di seluruh proyek Anda, lebih disukai yang dipandu oleh rekomendasi gaya Python sendiri. Kabar baiknya adalah Anda tidak harus melakukan ini dengan tangan. Ekosistem Python berisi berbagai perkakas, dari yang sangat terfokus hingga yang sangat luas, untuk memastikan bahwa kode sumber Python mematuhi konvensi gaya.

Dalam artikel ini kita akan memeriksa empat alat populer untuk memeriksa gaya kode Python, ditambah satu untuk memformat ulang kode agar konsisten. Python IDE seperti PyCharm atau Visual Studio Code mendukungnya baik secara native maupun dengan ekstensi, sehingga dapat dengan mudah diintegrasikan ke dalam alur kerja pengembangan Anda.

Pycodestyle

PEP 8 adalah dokumen yang menjelaskan konvensi pengkodean Python - semuanya mulai dari apakah menggunakan tab atau spasi saat membuat indentasi (menggunakan empat spasi, masalah diselesaikan) hingga bagaimana memberi nama variabel dan objek. Pycodestyle adalah modul Python yang memeriksa kode Python terhadap rekomendasi PEP 8 dan memberikan laporan di mana kode yang dianalisis berada di luar spesifikasi.

Pycodestyle tidak menyediakan perbaikan otomatis untuk masalah; itu terserah kamu. Tetapi Pycodestyle sangat dapat dikonfigurasi, memungkinkan Anda untuk menekan jenis kesalahan tertentu atau hanya mengurai file tertentu di pohon sumber. Dan hampir setiap IDE dengan dukungan Python juga mendukung Pycodestyle, jadi ini adalah pilihan mudah untuk kompatibilitas universal, jika bukan fungsionalitas.

Banyak linter kode Python dapat bekerja sebagai modul dengan Python, dan Pycodestyle tidak terkecuali. Anda dapat menggunakannya untuk memverifikasi kode secara terprogram, misalnya sebagai bagian dari rangkaian pengujian.

Paling baik untuk:  Verifikasi dasar kesesuaian PEP 8.

Autopep8

Autopep8 mengambil tempat Pycodestyle pergi. Ini menggunakan Pycodestyle untuk menentukan perubahan apa yang perlu dilakukan, kemudian memformat ulang kode agar sesuai dengan saran yang diberikan. File yang ada dapat diformat ulang di tempat atau ditulis ke file baru. Autopep8 juga memperbaiki sejumlah masalah lain yang dapat mengganggu, seperti membersihkan kode yang dikonversi dari Python 2 ke Python 3 atau file yang memiliki penanda akhir baris campuran. Dan Autoprep8 dapat digunakan secara terprogram untuk memformat ulang kode yang diberikan sebagai string.

Terbaik untuk: Mengonversi file menjadi konforman PEP-8.

Serpihan8

Flake8 membungkus beberapa alat linting dan gaya kode Python dalam satu paket. Bersama dengan PyFlakes, yang menggunakan pemeriksaan sintaks untuk mendeteksi kesalahan dasar, dan Pycodestyle, yang telah kita diskusikan di atas, Flake8 menyediakan alat tambahan untuk memeriksa "kompleksitas siklomatik" dari sebuah proyek - yaitu, jumlah jalur kode independen yang ditemukan dalam program . (Kompleksitas siklomatik adalah metrik yang berpotensi berguna jika Anda ingin menjaga modul dasar agar tidak menjadi terlalu tidak mendasar, misalnya.) Di akhir setiap analisis, Flake8 memberikan metrik persentil untuk kualitas keseluruhan dari kode yang dianalisis. cara untuk mendapatkan gambaran cepat tentang bagian mana dari basis kode yang paling bermasalah.

Flake8 juga memiliki sistem plug-in, sehingga linting dapat digabungkan dengan komit Git atau tindakan otomatis lainnya - misalnya, untuk memasukkan kode yang bermasalah ke pemformat ulang.

Paling baik untuk:  Menilai kualitas kode secara keseluruhan, dengan rekomendasi khusus.

Pylint

Pylint mungkin adalah linter Python yang paling banyak digunakan dan didukung di luar sana. Seperti yang lain, itu mencari kesalahan dan penyimpangan dari standar pengkodean dalam kode Python Anda, dan menawarkan perubahan untuk memperbaiki kesalahan tersebut.

Pylint juga bisa dibilang yang paling completist dari catur kode, dalam arti bahwa hal itu dapat memperingatkan Anda tentang banyak masalah dengan kode Anda, beberapa di antaranya bahkan mungkin tidak relevan dalam konteks tertentu. Hasilnya bisa bertele-tele, tetapi juga bisa disesuaikan dengan kebiasaan proyek tertentu.

Pylint mencari lima kelas masalah yang semakin bermasalah. "Konvensi" adalah pelanggaran PEP 8 atau aturan konsistensi lainnya dengan Python. “Refactors” menunjukkan bau kode, kesalahan umum, atau kode yang dapat dikerjakan ulang agar lebih efisien atau tidak membingungkan, seperti impor siklik atau file dengan terlalu banyak baris serupa yang dapat diringkas menjadi fungsi umum. "Peringatan" adalah masalah khusus Python, seperti kode yang tidak dapat dijangkau (semuanya setelah  return sebuah fungsi) atau kelas yang tidak memiliki  __init__ metode. "Kesalahan" adalah bug kode yang sebenarnya, seperti variabel yang tidak ditentukan, dan masalah "Fatal" adalah masalah yang bahkan mencegah Pylint berjalan.

Sekali lagi, yang membuat Pylint paling berguna dan kelas berat adalah jumlah umpan balik yang diberikannya. Kabar baiknya adalah bagi mereka yang ingin menyetelnya, verbositas dan perincian Pylint dapat diubah per project atau bahkan per file. Selain itu, Anda dapat menggunakan berbagai plugin Pylint yang menambahkan jenis pemeriksaan tertentu, seperti untuk kode yang terlalu rumit (rantai panjang  if, dll.) Atau linting untuk internal yang tidak digunakan lagi.

Terbaik untuk:  Kontrol kualitas sup-ke-kacang untuk kode, dengan asumsi Anda tidak keberatan mengubah pengaturannya untuk menghindari kelebihan beban.

Hitam

Hitam bukanlah alat analisis linter atau kode, tetapi alat untuk menerapkan gaya sebagai cara untuk memastikan kualitas kode yang lebih baik. Untuk alasan itu, ia duduk dengan nyaman di samping alat lain yang dijelaskan di sini, karena ini adalah cara untuk menghindari banyak kesalahan gaya dasar secara lebih awal.

Hitam dijelaskan sebagai "pemformat kode tanpa kompromi" - tanpa kompromi karena tidak memiliki opsi yang dapat diatur kecuali untuk panjang baris. Hitam memformat ulang kode Python menjadi gaya tunggal, konsisten, dan dapat dibaca, dengan menggunakan aturan internal untuk menangani masalah rumit seperti ekspresi multiline, sehingga bahkan dapat diformat ulang secara konsisten.

Salah satu keuntungan menggunakan Hitam adalah menyelesaikan semua perselisihan tentang pemformatan, jadi menghilangkan "bikeshedding" dan membuat keluaran linter juga tidak terlalu berisik. Anda tidak perlu berdebat tentang cara memformat kode untuk sebuah proyek, atau bahkan melakukan banyak hal secara manual. Anda hanya menggunakan Hitam dan selesai dengannya; Anda bahkan dapat mengkonfigurasi banyak IDE untuk memformat kode secara otomatis dengan Black. Keuntungan lain yang diklaim adalah membuat  git commit lebih bersih, karena mengurangi jumlah perubahan yang dilakukan pada file tertentu.

Terbaik untuk: Memasukkan basis kode menjadi kesesuaian gaya dasar secara massal .

Bagaimana melakukan lebih banyak dengan Python:

  • Cara bekerja dengan tipe data daftar Python
  • Cara mengemas aplikasi Python dengan BeeWare Briefcase
  • Cara menjalankan anaconda berdampingan dengan ular piton lainnya
  • Cara menggunakan dataclass Python
  • Mulailah dengan async dengan Python
  • Cara menggunakan asyncio dengan Python
  • 3 langkah untuk perbaikan asinkron Python
  • Cara menggunakan PyInstaller untuk membuat file executable Python
  • Tutorial Cython: Cara mempercepat Python
  • Cara menginstal Python dengan cara cerdas
  • Bagaimana mengelola proyek Python dengan Puisi
  • Cara mengelola proyek Python dengan Pipenv
  • Virtualenv dan venv: Penjelasan lingkungan virtual Python
  • Python virtualenv dan venv lakukan dan tidak boleh dilakukan
  • Penjelasan threading dan subproses Python
  • Cara menggunakan debugger Python
  • Cara menggunakan timeit untuk membuat profil kode Python
  • Cara menggunakan cProfile untuk membuat profil kode Python
  • Cara mengonversi Python ke JavaScript (dan kembali lagi)