cari
Rumahpembangunan bahagian belakangTutorial PythonAmalan Terbaik Python: Menulis Kod Bersih dan Boleh Diselenggara

Python Best Practices: Writing Clean and Maintainable Code

Kesederhanaan dan kebolehbacaan Python menjadikannya bahasa yang hebat untuk pemula dan pembangun berpengalaman. Walau bagaimanapun, menulis kod yang bersih dan boleh diselenggara memerlukan lebih daripada pengetahuan sintaks asas. Dalam panduan ini, kami akan meneroka amalan terbaik penting yang akan meningkatkan kualiti kod Python anda.

Kuasa PEP 8

PEP 8 ialah panduan gaya Python, dan mengikutinya secara konsisten menjadikan kod anda lebih mudah dibaca dan diselenggara. Mari lihat beberapa prinsip utama:

# Bad example
def calculate_total(x,y,z):
    return x+y+z

# Good example
def calculate_total(price, tax, shipping):
    """Calculate the total cost including tax and shipping."""
    return price + tax + shipping

Petua Jenis Pelukan

Petua jenis Python 3 meningkatkan kejelasan kod dan membolehkan sokongan alat yang lebih baik:

from typing import List, Dict, Optional

def process_user_data(
    user_id: int,
    settings: Dict[str, str],
    tags: Optional[List[str]] = None
) -> bool:
    """Process user data and return success status."""
    if tags is None:
        tags = []
    # Processing logic here
    return True

Pengurus Konteks untuk Pengurusan Sumber

Menggunakan pengurus konteks dengan pernyataan dengan memastikan pembersihan sumber yang betul:

# Bad approach
file = open('data.txt', 'r')
content = file.read()
file.close()

# Good approach
with open('data.txt', 'r') as file:
    content = file.read()
    # File automatically closes after the block

Laksanakan Pengendalian Ralat Bersih

Pengendalian pengecualian yang betul menjadikan kod anda lebih mantap:

def fetch_user_data(user_id: int) -> dict:
    try:
        # Attempt to fetch user data
        user = database.get_user(user_id)
        return user.to_dict()
    except DatabaseConnectionError as e:
        logger.error(f"Database connection failed: {e}")
        raise
    except UserNotFoundError:
        logger.warning(f"User {user_id} not found")
        return {}

Gunakan Pemahaman Senarai dengan Bijak

Kefahaman senarai boleh menjadikan kod anda lebih ringkas, tetapi jangan mengorbankan kebolehbacaan:

# Simple and readable - good!
squares = [x * x for x in range(10)]

# Too complex - break it down
# Bad example
result = [x.strip().lower() for x in text.split(',') if x.strip() and not x.startswith('#')]

# Better approach
def process_item(item: str) -> str:
    return item.strip().lower()

def is_valid_item(item: str) -> bool:
    item = item.strip()
    return bool(item) and not item.startswith('#')

result = [process_item(x) for x in text.split(',') if is_valid_item(x)]

Kelas Data untuk Data Berstruktur

Kelas data Python 3.7 mengurangkan boilerplate untuk bekas data:

from dataclasses import dataclass
from datetime import datetime

@dataclass
class UserProfile:
    username: str
    email: str
    created_at: datetime = field(default_factory=datetime.now)
    is_active: bool = True

    def __post_init__(self):
        self.email = self.email.lower()

Ujian Tidak Boleh Dirunding

Sentiasa tulis ujian untuk kod anda menggunakan pytest:

import pytest
from myapp.calculator import calculate_total

def test_calculate_total_with_valid_inputs():
    result = calculate_total(100, 10, 5)
    assert result == 115

def test_calculate_total_with_zero_values():
    result = calculate_total(100, 0, 0)
    assert result == 100

def test_calculate_total_with_negative_values():
    with pytest.raises(ValueError):
        calculate_total(100, -10, 5)

Kesimpulan

Menulis kod Python yang bersih ialah perjalanan yang berterusan. Amalan terbaik ini akan membantu anda menulis kod yang lebih mudah diselenggara, boleh dibaca dan teguh. Ingat:

  1. Ikuti PEP 8 secara konsisten
  2. Gunakan petunjuk jenis untuk kejelasan kod yang lebih baik
  3. Laksanakan pengendalian ralat yang betul
  4. Tulis ujian untuk kod anda
  5. Pastikan fungsi dan kelas fokus dan satu guna
  6. Gunakan ciri Python moden dengan sewajarnya

Apakah amalan terbaik yang anda ikuti dalam projek Python anda? Kongsi pendapat dan pengalaman anda dalam ulasan di bawah!

Atas ialah kandungan terperinci Amalan Terbaik Python: Menulis Kod Bersih dan Boleh Diselenggara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Apakah penyataan suis python?Apakah penyataan suis python?Apr 30, 2025 pm 02:08 PM

Artikel ini membincangkan pernyataan baru "Match" Python yang diperkenalkan dalam versi 3.10, yang berfungsi sebagai setara dengan menukar pernyataan dalam bahasa lain. Ia meningkatkan kebolehbacaan kod dan menawarkan manfaat prestasi ke atas tradisional if-elif-el

Apakah kumpulan pengecualian dalam Python?Apakah kumpulan pengecualian dalam Python?Apr 30, 2025 pm 02:07 PM

Kumpulan Pengecualian dalam Python 3.11 Membenarkan mengendalikan pelbagai pengecualian secara serentak, meningkatkan pengurusan ralat dalam senario serentak dan operasi kompleks.

Apakah anotasi fungsi dalam python?Apakah anotasi fungsi dalam python?Apr 30, 2025 pm 02:06 PM

Fungsi anotasi dalam python Tambah metadata ke fungsi untuk pemeriksaan jenis, dokumentasi, dan sokongan IDE. Mereka meningkatkan kebolehbacaan kod, penyelenggaraan, dan penting dalam pembangunan API, sains data, dan penciptaan perpustakaan.

Apakah ujian unit di Python?Apakah ujian unit di Python?Apr 30, 2025 pm 02:05 PM

Artikel ini membincangkan ujian unit di Python, faedah mereka, dan bagaimana menulisnya dengan berkesan. Ia menyoroti alat seperti Unittest dan Pytest untuk ujian.

Apakah penentu akses dalam python?Apakah penentu akses dalam python?Apr 30, 2025 pm 02:03 PM

Artikel membincangkan penentu akses dalam Python, yang menggunakan konvensyen penamaan untuk menunjukkan keterlihatan ahli kelas, dan bukan penguatkuasaan yang ketat.

Apakah __init __ () dalam python dan bagaimana diri memainkan peranan di dalamnya?Apakah __init __ () dalam python dan bagaimana diri memainkan peranan di dalamnya?Apr 30, 2025 pm 02:02 PM

Artikel membincangkan kaedah Python \ _ _ _ _ _ \ _ () dan peranan diri dalam memulakan atribut objek. Kaedah kelas lain dan kesan warisan pada \ _ _ _ init \ _ \ _ () juga dilindungi.

Apakah perbezaan antara kaedah @classmethod, @staticmethod dan contoh dalam python?Apakah perbezaan antara kaedah @classmethod, @staticmethod dan contoh dalam python?Apr 30, 2025 pm 02:01 PM

Artikel ini membincangkan perbezaan antara @classmethod, @staticmethod, dan kaedah contoh dalam python, memperincikan sifat mereka, kes penggunaan, dan faedah. Ia menerangkan cara memilih jenis kaedah yang betul berdasarkan fungsi yang diperlukan dan da

Bagaimana anda menambah elemen ke array python?Bagaimana anda menambah elemen ke array python?Apr 30, 2025 am 12:19 AM

Inpython, youAppendElementStoalistusingTheAppend () method.1) useAppend () forsingLements: my_list.append (4) .2) useextend () or = formultipleelements: my_list.extend (lain_list) ormy_list = [4,5,6] .3) UseInsert () ForSpecificPositions: my_list.insert (1,5) .beaware

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).