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

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

この構文は、単純な値での分岐の他に、データ構造やアトリビュートのパターンでの分岐なども可能となっています。見た目は他のオブジェクト指向型の言語によくあるswitch caseに似た印象を与えますが、どちらかというと関数型言語のパターンマッチングに近いイメージで捉えるのがよさそうです。

また、case文にはifガードを使用することも可能です。これにより、より柔軟な条件分岐が可能となります。

match sample:
    case int(x) if sample > 0:
        print("sample is integer and greater than 0")
    case str(x) if sample == "hello":
        print("sample is string and  'hello'")
    case int(x):
        print("sample is integer")
    case str(x):
        print("sample is string")
    case _:
        print("other!")

このように、Python 3.10の構造的パターンマッチングは、コードの可読性と柔軟性を高める強力な機能です。正しく理解してうまく活用すれば、よりPythonicなコードを書くのに役立つでしょう。

投稿者 admin

コメントを残す

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