ホームページ > バックエンド開発 > 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.関数とクラスを小さく保つ

関数は 1 つのことを適切に実行する必要があります。同様に、クラスは単一責任原則 (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.単純な変換にリスト内包表記を使用する

リスト内包表記を使用すると、コードがより簡潔になり、Python っぽくなります。ただし、過度に複雑にすることは避けてください。

❌ 悪い:

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...excel ブロッ​​クを使用してエラーを処理し、意味のあるメッセージを提供します。

例:

# 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート