首頁 > 後端開發 > Python教學 > Python 中的整潔程式碼和良好實踐

Python 中的整潔程式碼和良好實踐

Patricia Arquette
發布: 2025-01-06 10:17:41
原創
693 人瀏覽過

Clean Code and Good Practices in Python

編寫乾淨、可維護的 Python 程式碼是任何開發人員的基本技能。乾淨的程式碼不僅使您的工作更具可讀性和效率,而且還確保您的專案可以輕鬆地被其他人理解和維護。在本文中,我們將探討編寫乾淨的 Python 程式碼的關鍵原則和良好實踐。


1.遵循 PEP 8 風格指南

PEP 8 是 Python 的官方風格指南,提供了編寫可讀且一致的程式碼的約定。 pylint 和 flake8 等工具可以幫助確保您的程式碼遵守這些標準。

主要 PEP 8 規則:

  • 使用 4 個空格進行縮排。
  • 將行數限制為 79 個字元。
  • 為變數和函數使用有意義的名稱。

例子:

# Good
def calculate_total_price(price, tax_rate):
    return price + (price * tax_rate)
登入後複製
登入後複製

2.寫出描述性且有意義的名稱

名稱應該清楚描述變數、函數和類別的用途。避免使用單字母或模糊的術語。

❌ 壞:

def func(x, y):
    return x + y
登入後複製
登入後複製

✅ 好:

def add_numbers(number1, number2):
    return number1 + number2
登入後複製
登入後複製

指南:

  • 使用snake_case作為變數和函數名稱。
  • 使用 PascalCase 命名類別名稱。

3.保持函數和類別較小

函數應該做一件事並且做好它。同樣,類別應遵守單一職責原則 (SRP)。

❌ 壞:

def process_user_data(user):
    # Validating user
    if not user.get('name') or not user.get('email'):
        return "Invalid user"

    # Sending email
    print(f"Sending email to {user['email']}")
    return "Success"
登入後複製
登入後複製

✅ 好:

def validate_user(user):
    return bool(user.get('name') and user.get('email'))

def send_email(email):
    print(f"Sending email to {email}")

def process_user_data(user):
    if validate_user(user):
        send_email(user['email'])
        return "Success"
    return "Invalid user"
登入後複製
登入後複製

4.使用常數表示幻數和字串

避免直接在程式碼中使用硬編碼值。將它們定義為常數以獲得更好的可讀性和可維護性。

❌ 壞:

if order_total > 100:
    discount = 10
登入後複製
登入後複製

✅ 好:

MINIMUM_DISCOUNT_THRESHOLD = 100
DISCOUNT_PERCENTAGE = 10

if order_total > MINIMUM_DISCOUNT_THRESHOLD:
    discount = DISCOUNT_PERCENTAGE
登入後複製
登入後複製

5.使用列表推導式進行簡單轉換

列表推導式讓你的程式碼更簡潔和Pythonic。但是,請避免使它們過於複雜。

❌ 壞:

squared_numbers = []
for number in range(10):
    squared_numbers.append(number ** 2)
登入後複製

✅ 好:

squared_numbers = [number ** 2 for number in range(10)]
登入後複製

6.避免可變的預設參數

使用列表或字典等可變物件作為預設參數可能會導致意外行為。

❌ 壞:

def append_to_list(value, items=[]):
    items.append(value)
    return items
登入後複製

✅ 好:

def append_to_list(value, items=None):
    if items is None:
        items = []
    items.append(value)
    return items
登入後複製

7.優雅地處理異常

Python 鼓勵使用異常進行錯誤處理。使用 try... except 區塊來處理錯誤並提供有意義的訊息。

例子:

# Good
def calculate_total_price(price, tax_rate):
    return price + (price * tax_rate)
登入後複製
登入後複製

8.寫 DRY(不要重複自己)程式碼

避免程式碼中重複邏輯。將通用功能提取到可重複使用的函數或類別中。

❌ 壞:

def func(x, y):
    return x + y
登入後複製
登入後複製

✅ 好:

def add_numbers(number1, number2):
    return number1 + number2
登入後複製
登入後複製

9.使用文件字串和註解

使用有意義的文件字串和註解來記錄您的程式碼,以解釋複雜邏輯背後的「原因」。

例子:

def process_user_data(user):
    # Validating user
    if not user.get('name') or not user.get('email'):
        return "Invalid user"

    # Sending email
    print(f"Sending email to {user['email']}")
    return "Success"
登入後複製
登入後複製

10。使用類型提示

類型提示使您的程式碼更具可讀性,並幫助 mypy 等工具儘早捕獲錯誤。

例子:

def validate_user(user):
    return bool(user.get('name') and user.get('email'))

def send_email(email):
    print(f"Sending email to {email}")

def process_user_data(user):
    if validate_user(user):
        send_email(user['email'])
        return "Success"
    return "Invalid user"
登入後複製
登入後複製

11。測試你的程式碼

始終編寫測試以確保您的程式碼按預期工作。使用像unittest或pytest這樣的框架。

例子:

if order_total > 100:
    discount = 10
登入後複製
登入後複製

12。使用虛擬環境

使用虛擬環境隔離專案相依性以避免衝突。

命令:

MINIMUM_DISCOUNT_THRESHOLD = 100
DISCOUNT_PERCENTAGE = 10

if order_total > MINIMUM_DISCOUNT_THRESHOLD:
    discount = DISCOUNT_PERCENTAGE
登入後複製
登入後複製

遺言

乾淨的程式碼不只是一組規則,更是一種心態。透過採用這些良好實踐,您將編寫出可讀、可維護且專業的 Python 程式碼。請記住,乾淨的程式碼不僅對您有益,而且對使用您的程式碼的每個人都有好處。

你最喜歡的 Python 乾淨程式碼實作是什麼?請在下面的評論中分享您的建議!

以上是Python 中的整潔程式碼和良好實踐的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板