Python 3.10では、新たな機能として「構造的パターンマッチング」が導入されました。この機能は、評価対象がパターンにマッチするかをチェックし、一致した場合の挙動を定義することができます。

構造的パターンマッチングは、matchcaseというキーワードを使用します。

match expression:
    case pattern1:
        ...
    case pattern2:
        ...

ここで、expressionはPythonの式を指定し、patternの部分にはマッチさせるパターンを指定します。

パターンの種類

構造的パターンマッチングには多くのパターンがあります。以下にいくつかの主要なパターンを紹介します。

リテラルパターン

リテラルパターンでは、単純に値が一致するかどうかでマッチングを行います。

def check(data):
    match data:
        case 1:
            print("失敗")
        case 2:
            print("成功")
        case _:
            print("値は不適切です。")

キャプチャパターン

キャプチャパターンは、caseの後ろの変数に値をキャプチャして処理をするパターンです。

def check(data):
    match data:
        case 1:
            print("失敗")
        case x:
            print(f"成功: {x}")

ワイルドカードパターン

ワイルドカードパターンは、caseの後ろに_を記述するパターンです。

def check(data):
    match data:
        case 1:
            print("失敗")
        case _:
            print("値は不適切です。")

以上のように、Pythonの構造的パターンマッチングは非常に強力で、さまざまなパターンをサポートしています。これらのパターンを理解し、適切に活用することで、よりPythonicなコードを書くことが可能になります。

投稿者 admin

コメントを残す

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