Amalan Terbaik dalam Python
Artikel ini menerangkan amalan terbaik dalam Python.
Kami akan menerangkan amalan terbaik Python dengan contoh kod sebenar, memperkenalkan cara menulis kod yang mudah dibaca dan diselenggara.
YouTube Video
Amalan Terbaik dalam Python
Utamakan keterbacaan
Pertama sekali, mari kita lihat bagaimana 'mengutamakan keterbacaan.'.
Python ialah bahasa yang mementingkan 'keterbacaan.'. Mula-mula, utamakan penulisan kod yang tujuannya jelas pada sekali pandang.
1# Bad example: unclear variable names
2a = 10
3b = 5
4c = a * bDalam kod ini, nama pembolehubah tidak menunjukkan maksudnya, jadi mengambil masa untuk orang lain memahaminya kemudian.
1# Good example: descriptive variable names
2price = 10
3quantity = 5
4total_cost = price * quantityDengan memberi nama pembolehubah yang spesifik, kod anda sendiri berfungsi sebagai dokumentasi.
Tulis kod yang jelas
Seterusnya, mari kita lihat tentang 'menulis kod yang jelas.'.
Dalam Python, 'niat yang jelas' lebih diutamakan berbanding 'tingkah laku tersirat.'.
1# Bad example: implicit truthy check
2if data:
3 process(data)Dalam kod ini, tidak jelas apa yang dijangkakan daripada data, yang boleh menyebabkan pepijat.
1# Good example: explicit condition
2if len(data) > 0:
3 process(data)Dengan menjadikan syarat-syarat secara jelas, niat kod adalah sejajar dengan spesifikasinya.
Pastikan fungsi ringkas dan fokus pada satu tanggungjawab sahaja
Seterusnya, mari kita lihat 'menjadikan fungsi ringkas dan fokus pada satu tanggungjawab.'.
Apabila satu fungsi melakukan terlalu banyak perkara, ujian dan penyelenggaraan menjadi sukar.
1# Bad example: doing too many things
2def handle_user(user):
3 save_to_database(user)
4 send_email(user)
5 write_log(user)Dalam kod ini, proses menjadi sangat berkait, menyebabkan sukar untuk digunakan semula dan diubahsuai.
1# Good example: single responsibility
2def save_user(user):
3 save_to_database(user)
4
5def notify_user(user):
6 send_email(user)
7
8def log_user(user):
9 write_log(user)Dengan memecahkan fungsi, peranan mereka menjadi jelas dan ujian menjadi lebih mudah.
Gunakan tanda jenis (type hints) secara aktif
Seterusnya, mari kita lihat tentang 'menggunakan tanda jenis secara aktif.'.
Tanda jenis berfungsi sebagai dokumentasi dan merupakan alat yang kuat untuk mengelakkan pepijat.
1# Bad example: Without type hints
2def add(a, b):
3 return a + bDalam kod ini, jenis argumen dan nilai pulangan tidak jelas, menyebabkan kemungkinan penyalahgunaan.
1# Good example: With type hints
2def add(a: int, b: int) -> int:
3 return a + bDengan tanda jenis, pelengkapan IDE, analisis statik, dan keterbacaan akan bertambah baik.
Nyatakan secara jelas kemungkinan pulangan None
Seterusnya, mari kita lihat 'menyatakan secara jelas kemungkinan untuk memulangkan None.'.
Fungsi yang boleh memulangkan None sering terlepas pandang oleh pengguna kod tersebut.
1# Bad example: Ambiguous return value
2def find_user(user_id):
3 if user_id == 1:
4 return {"id": 1, "name": "Alice"}
5 return NoneDalam kod ini, tidak jelas sama ada terdapat nilai pulangan atau tidak.
1# Good example: explicit return type
2from typing import Optional, Dict, Any
3
4def find_user(user_id: int) -> Optional[Dict[str, Any]]:
5 if user_id == 1:
6 return {"id": 1, "name": "Alice"}
7 return NoneDengan menggunakan Optional, anda boleh menunjukkan kemungkinan memulangkan None sebagai satu jenis.
Jangan tangkap pengecualian secara terlalu luas
Seterusnya, mari kita lihat 'tidak menangkap pengecualian secara terlalu luas.'.
Pengendalian pengecualian sepatutnya hanya menangkap apa yang perlu sahaja.
1# Bad example: catching all exceptions
2try:
3 result = int(value)
4except Exception:
5 result = 0Kod ini mungkin menyembunyikan pepijat yang sepatutnya dapat dikesan.
1# Good example: catch specific exception
2try:
3 result = int(value)
4except ValueError:
5 result = 0Dengan menghadkan pengecualian, anda tidak akan terlepas isu-isu yang tidak dijangka.
Kendalikan sumber dengan selamat menggunakan pernyataan with
Seterusnya, mari kita lihat 'mengendalikan sumber dengan selamat menggunakan pernyataan with.'.
Sumber seperti fail dan kunci mesti sentiasa dilepaskan dengan selamat.
1# Bad example: manual close
2file = open("data.txt")
3content = file.read()
4file.close()Dalam kod ini, jika pengecualian berlaku, close() mungkin tidak dipanggil.
1# Good example: using context manager
2with open("data.txt") as file:
3 content = file.read()Dengan menggunakan pernyataan with, kerja pembersihan akan dilakukan dengan selamat walaupun berlaku pengecualian.
Gunakan pemahaman senarai (list comprehensions) secara sesuai
Seterusnya, mari kita lihat tentang 'menggunakan pemahaman senarai secara sesuai.'.
Proses transformasi mudah boleh ditulis dengan ringkas menggunakan pemahaman senarai.
1# Bad example: Verbose loop
2squares = []
3for i in range(10):
4 squares.append(i * i)Dalam kod ini, proses utama sukar untuk dilihat.
1# Good example: Clear list comprehension
2squares = [i * i for i in range(10)]Dengan menggunakan pemahaman senarai secara sesuai, keterbacaan kod akan meningkat.
Elakkan penggunaan nombor ajaib (magic numbers)
Seterusnya, mari kita lihat tentang 'mengelakkan penggunaan nombor ajaib.'.
Menulis nombor dan rentetan secara langsung menjadikan maknanya tidak jelas.
1# Bad example: magic number
2if status == 404:
3 handle_not_found()Dalam kod ini, andaian bahawa anda tahu maksud 404 digunakan.
1# Good example: named constant
2NOT_FOUND = 404
3
4if status == NOT_FOUND:
5 handle_not_found()Memberikan nama akan menjadikan niat jelas.
Tulis kod yang mudah diselenggara, bukan sekadar kod yang 'boleh berfungsi'
Akhir sekali, mari kita lihat 'menulis kod yang mudah diselenggara, bukan hanya kod yang boleh berfungsi.'.
Perkara penting ialah sama ada diri anda pada masa hadapan atau orang lain boleh membacanya.
1# Bad example: Hard to maintain
2def f(x):
3 return x * 1.08 + 100Dalam kod ini, spesifikasi tidak dapat difahami daripada kod itu sendiri.
1# Good example: Easy to maintain
2TAX_RATE = 1.08
3BASE_FEE = 100
4
5def calculate_total(price: float) -> float:
6 return price * TAX_RATE + BASE_FEEDengan mencerminkan makna dalam nama, kod itu sendiri menjadi spesifikasi.
Ringkasan
Amalan terbaik Python adalah menulis kod yang mudah difahami, bukan kod yang terlalu bijak. Membentuk tabiat kecil akan menghasilkan kod yang kurang pepijat dan boleh digunakan untuk jangka masa yang lama.
Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.