Python 3.10では、新たな構文としてパターンマッチング構文(match case)が導入されました。この構文は、値に応じた処理の分岐を行うためのもので、条件分岐が厳密に定められることや、条件が入れ子になってしまった場合にもスッキリとまとまることが特徴です。

構造的パターンマッチングとは

構造的パターンマッチングは、Python 3.10で新たに導入された構文で、2つのキーワードmatchcaseを使用します。

match value:
    case 1:
        ...
    case _:
        ...

単純な値での分岐の他に、データ構造やアトリビュートのパターンでの分岐なども可能となっています。

パターンマッチングがサポートするパターン

パターンマッチングは数多くのパターンをサポートしています。以下にいくつかのパターンを紹介します。

リテラルパターン

caseの後ろにリテラルを記述するパターンです。このパターンでは単純に値が一致するかどうかでマッチングを行います。

number = 10
match number:
    case 0:
        raise Exception('失敗')
    case 10:
        print('成功')
    case _:
        raise Exception('失敗')

キャプチャパターン

caseの後ろにPythonで有効な名前を記述するパターンです。

value = 3.14
match value:
    case 3:
        raise Exception('失敗')
    case 3.1415:
        raise Exception('失敗')
    case x:
        assert x == 3.14
        print('成功')

ワイルドカードパターン

caseの後ろに_を記述するパターンです。

message = 'こんにちは'
match message:
    case 'おはよう':
        raise Exception('失敗')
    case _:
        print('成功')

まとめ

Python 3.10のパターンマッチング構文は、条件分岐をより明確に、より簡潔に書くことができる強力な機能です。この機能を理解し、うまく活用することで、Pythonicなコードを書くのに役立つでしょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です