Pengenalan Singkat Tentang Python’s Coding Style - CRUDPRO

Pengenalan Singkat Tentang Python’s Coding Style

Pengenalan Singkat Tentang Python’s Coding Style

Ketika saya memutuskan beberapa hari lalu untuk memulai menulis tentang Python, saya tidak percaya apa topik pertama saya. Terutama karena saya tidak pernah membuat artikel apa pun dalam kehidupan saya sebelumnya, dan itu cukup menakutkan. Kemudian saya berpikir: "Baiklah, saya akan mulai dengan suatu hal yang pendek dan simpel untuk membuat kaki saya basah.", jadi inilah saya.

saya akan melihat sekilas beberapa dasar style pengkodean untuk Python yang akan membantu saya menulis code yang jelas, stabil, dan mudah dilihat.

Pengenalan Singkat Tentang Python’s Coding Style
Daftar isi
  1. Pendahuluan
  2. Konvensi Pemberian nama
  3. Ke White Space atau Not To White Space?
  4. Petunjuk umum
  5. Jangan Lakukan Semuanya Sendiri

Pendahuluan

Kemungkinan Anda sudah pernah mendengar mengenai PEP, tapi jika belum, inilah pengertian resminya:

PEP ialah singkatan dari Proposal Peningkatan Python. PEP ialah document design yang memberi info ke komunitas Python, atau menerangkan feature baru untuk Python atau proses atau lingkungannya

Ada beberapa daftar PEP yang menangani topik terkait Python yang beda, tapi saya hanya akan fokus pada PEP 8 yang disebut dasar dalam soal konvensi gaya pengkodean Python. Ini mempunyai tujuan untuk membikin code lebih mudah dibaca dan stabil dengan mendeskripsikan seperangkat pedoman untuk konvensi penamaan, pemakaian tab vs spasi, panjang baris maksimal, dan lain-lain. Tetapi, perlu diingat bahwa itu bukan ketentuan, terkadang masuk akal untuk tidak meng ikuti dasar tertentu, check beberapa contoh di sini: Stabilitas Bodoh ialah Hobgoblin Pikiran Kecil

Konvensi Penamaan

Mari kita mulai dengan melihat contoh simpel. Apa pendapat Anda mengenai kedua fungsi ini?

def sumEvenNumbers(numbers):
    even_sum = 0
    
    for ListNumber in numbers:
        if ListNumber % 2 == 0:
            even_sum += ListNumber

    return even_sum

def sum_odd_nums(nums):
    OddSum = 0
    
    for n in nums:
        if n% 2 == 0:
            OddSum+= n

    return OddSum

Apakah itu mengganggu Anda? Saya akan menebak dan berbicara ya (berima * awalnya * tidak disengaja). Permasalahan paling besar dengan contoh ini, menurut saya, ialah ketidakkonsistenannya. saya mempunyai dua fungsi, satu di mixedCase dan yang lain di snake_case. Faktor lokal yang diartikan di tiap-tiap peranan itu mempunyai kombinasi style penamaan. Bayangkan memiliki kombinasi konvensi penamaan yang beda ini di semua project besar.

Saat ini Anda kemungkinan berpikir: "Ah, Ahmed, terus mengapa? Apa itu betul-betul permasalahan besar?" Saya akan menjelaskan ya, karena beberapa argumen:

  1. Kita sering membaca code lebih banyak dibanding menulisnya, menjadi penting untuk menjaganya masih tetap bersih dan gampang dipahami
  2. Satu hal yang penting dikhawatirkan saat membuat variabel/fungsi/kelas baru, karena Anda sudah mengetahui bagaimana tampilannya dan Anda perlu membuat nama preskriptif (saya tidak paham mengenai Anda tapi terkadang ini membutuhkan saya sedikit)
  3. Memudahkan penulisan analisis statis atau skrip otomasi saat skema penamaannya sama di mana saja

Untuk argumen ini kita perlu mendeskripsikan beberapa standard yang bisa di ikuti semuanya orang.

Masukkan PEP 8!

Ini memberikan tutorial untuk standard penamaan yang direkomendasikan untuk variabel, kelas, fungsi, dan yang lain. Berikut beberapa di antaranya:

  1. Kelas: gunakan style CamelCase (misalnya classInputManager)
  2. Fungsi dan variabel: gunakan style snake_case (misalnya def sum_even_numbers(numbers) atau sum_even = 0)
  3. Sistem: sama seperti fungsi, apabila itu ialah metode non-publik, gunakan satu garis bawah utama (misalnya def _calculate_intermediate_sum(self))
  4. Konstanta: gunakan semua huruf kapital dengan garis bawah untuk memisahkan kata (misalnya MAX_WIDTH = 10)

Ke White Space atau Not To White Space?

Urutan bisnis saya selanjutnya ialah pemakaian white space. Yang ini murni estetika.

Ke white space:
  1. Satu spasi di kedua sisi operator biner ( = , += , -= , > , >= , < , <= , == , dan lain-lain.) (misalnya sum += 5)
  2. Satu spasi sesudah koma dalam tupel/daftar (misalnya ages = [12, 13, 14], coordinates = (4, 3))
  3. Dalam fungsi tulis petunjuk: satu spasi sesudah titik dua dan kelilingi -> dengan spasi di kedua sisi (mis. def sum_even(nums: Daftar) -> int :)
  4. Saat nilai standar digunakan dalam kombinasi dengan petunjuk type dalam tanda tangan fungsi, pakai spasi putih disekitaran = (mis. def draw(scale: int = 1) -> None :) (Saya tidak tahu itu saat sebelum meneliti untuk artikel ini)
Tidak ke white space:
  1. Tidak boleh menambah spasi extra untuk menyelaraskan operator
  2. Sebelum koma di tupel/daftar
  3. Tepat dalam tanda kurung, tanda kurung {}
  4. Hindari mengikuti spasi putih
Berikut beberapa contoh akhir baik vs buruk:
# Good
age = 20
social_security_number = 1111

info[0] = (names[0], {'address': 'somewhere'})

heights = [180, 178, 195]

# Bad
age                    = 20
social_security_number = 1111

info[ 0] = ( names[ 0 ], { 'address': 'somewhere' } )

heights = [180 , 178 , 195]

Panduan umum

Ada beberapa dasar yang lain ingin saya bahas, tetapi untuk mempersingkatnya, saya hanya akan meninggalkan Anda dengan beberapa panduan cepat (deskripsi yang lebih rinci bisa ditemukan di dokumentasi PEP 8):

  1. Impor harus dilaksanakan pada jalur terpisah
  2. Gunakan spasi bukannya tab (terkecuali jika tab telah dipakai di basis code Anda, karena Python tidak mengizinkan pencampuran spasi dan tab)
  3. Panjang baris maksimum yang disarankan ialah 79 karakter untuk code dan 72 karakter untuk komentar atau document
  4. Gunakan 4 spasi per tingkat lekukan

Jangan Lakukan Semuanya Sendiri

Kita memerlukan bantuan sesekali, dan ketika mengikuti standard yang sudah kita bahas, pustaka masuk Anda ialah autopep8. Alat ini dengan cara otomatis memformat code Python Anda supaya sesuai tutorial style PEP 8, Anda juga bisa menentukan tingkat agresivitas dan apakah harus mengabaikan beberapa aturan saat memformat (Aturan diperbaiki oleh autopep8)

Untuk menginstal:

pip instal autopep8

Dan memakainya sama simpelnya:

autopep8 --in-place --aggressive

Jika Anda mengembangkan pada Visual Studio Kode, maka saya benar-benar menyarankan untuk memakai fitur pemformatan otomatis dalam perpanjangan Python, yang menjalankan autopep8 pada file saat Anda menyimpannya.

Anda hanya perlu menambahkan beberapa baris ke file VSCode settings.json Anda. Berikut kutipan dari pengaturan yang saya pakai:

"python.formatting.autopep8Args": [
    "--max-line-length=79",
    "--ignore",
    "E402"
  ],
  "editor.formatOnSave": true,