Python 3.10では、新たな構文として構造的パターンマッチングが導入されました。この機能は、match
とcase
という2つのキーワードを使用します。
match value:
case 1:
...
case _:
...
この構文は、単純な値の分岐だけでなく、データ構造やアトリビュートのパターンでの分岐も可能にします。見た目は他のオブジェクト指向型の言語によくあるswitch case
に似ていますが、実際には関数型言語のパターンマッチングに近いです。
以下に、いくつかの基本的なパターンを示します。
- リテラルパターン
- キャプチャパターン
- ワイルドカードパターン
- バリューパターン
- シーケンスパターン
- マッピングパターン
- ifガード
- クラスパターン
- asでの束縛
これらのパターンを理解し、適切に活用することで、よりPythonicなコードを書くことが可能になります。
詳細な情報や具体的な使用例については、以下のPEPを参照してください。
- PEP 634 – Structural Pattern Matching: Specification
- PEP 635 – Structural Pattern Matching: Motivation and Rationale
- PEP 636 – Structural Pattern Matching: Tutorial