Pythonでmatch-case文を活用してIf分をわかりやすくする

環境

  • Windows 10
  • Python 3.10.1
  • VSCode

使用するソースコード

以下の公開リポジトリに置いています

GitHub - masayan1126/tao-py-py: 作業自動化用 Python ライブラリ
作業自動化用 Python ライブラリ. Contribute to masayan1126/tao-py-py development by creating an account on GitHub.

実装

データベースに登録されているタスク一覧があると仮定し、そのタスクにはステータスに応じて処理を分岐させるプログラムとする

タスクの状態を表すEnum

TaskType.py

from enum import Enum

class TaskType(Enum):
    YET = 1
    PROGRESS = 2
    DONE = 3

処理を分岐するプログラム

  • タスクのステータスに応じてmatch~case文で処理
  • デフォルト処理の分岐は、case_: のブロックに記述する

task.py

# タスクの種別に応じて処理を分ける
match TaskType(task.status):
  case TaskType.YET:
    ..
  case TaskType.PROGRESS
    ..
  case TaskType.DONE:
    ..
  case _:
    # デフォルトの処理

Python学習におすすめの書籍

独習Python/山田祥寛【3000円以上送料無料】
bookfan 1号店 楽天市場店
¥ 3,300(2023/01/31 18:22時点)
タイトルとURLをコピーしました