Python 3.10では、新たな構文として構造的パターンマッチングが導入されました。この機能は、match
とcase
の2つのキーワードを使用します。
match value:
case 1:
...
case _:
...
この構文は、単純な値の分岐だけでなく、データ構造やアトリビュートのパターンでの分岐も可能となっています。
また、この機能は辞書と組み合わせて使用することも可能です。例えば、次のように書くことができます。
case pygame.KEYDOWN:
match event.key:
case game.controls.get("pan_up"):
world_pos[1] -= 1
case game.controls.get("pan_left"):
world_pos[0] -= 1
case game.controls.get("pan_down"):
world_pos[1] += 1
case game.controls.get("pan_right"):
world_pos[0] += 1
このコードでは、pygame.KEYDOWN
イベントが発生したときに、event.key
の値をgame.controls
辞書の各キーに対応する値と比較しています。マッチした場合、対応する処理が実行されます。
このように、Python 3.10の構造的パターンマッチングは、辞書と組み合わせて使用することで、より柔軟なコードを書くことが可能になります。この新機能を活用して、Pythonicなコードを書くことができるでしょう。