Python | 複雑な条件を読みやすくするためのテクニック(関数化や早期return)

Python
スポンサーリンク

複雑な条件式はそのまま書くと「何をチェックしているのか」が分かりにくくなります。実務では 関数化早期return を使って読みやすく整理するのが定石です。


テクニック1:関数化して名前で意味を伝える

長い条件を直接書くより、関数にまとめて「何を判定しているか」を名前で表すと分かりやすいです。

def is_valid_age(age: int) -> bool:
    return 0 <= age <= 120

def can_login(email: str, password: str, guest_login: bool) -> bool:
    return (email and password) or guest_login

# 使用例
age = 25
if not is_valid_age(age):
    print("年齢が不正です")

if can_login("user@example.com", "secret", False):
    print("ログイン成功")
Python
  • is_valid_age → 「年齢が正しいかどうか」
  • can_login → 「ログイン可能かどうか」
    → 条件式を読む人が「何を判定しているか」をすぐ理解できる

テクニック2:早期returnでネストを減らす

複雑な条件を「ifの入れ子」で書くと読みにくいので、早めにreturnして処理を終わらせるとスッキリします。

悪い例(ネストが深い)

def process_user(age, is_member, has_invite_code):
    if age >= 18:
        if is_member or has_invite_code:
            return "参加できます"
        else:
            return "参加できません"
    else:
        return "参加できません"
Python

良い例(早期returnで整理)

def process_user(age, is_member, has_invite_code):
    if age < 18:
        return "参加できません"
    if not (is_member or has_invite_code):
        return "参加できません"
    return "参加できます"
Python
  • 「ダメな条件」を先にreturnしてしまう
  • 残った処理は「OKな場合」だけなので読みやすい

テクニック3:変数に条件を代入して説明的にする

age = 20
is_member = True
has_invite_code = False

is_adult = age >= 18
can_join = (is_adult and is_member) or has_invite_code

if can_join:
    print("参加できます")
else:
    print("参加できません")
Python
  • is_adultcan_join のような説明的な変数を使うと、条件式の意図が一目で分かる

まとめ

  • 関数化 → 「何を判定しているか」を名前で表す
  • 早期return → ネストを減らして読みやすくする
  • 説明的変数 → 条件の意味を明示する

👉 実務では「複雑な条件をそのまま書かない」ことが大事です。読みやすさを優先すると、後からコードを読む人(未来の自分も含む)が楽になります。

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました