Python 3.10では、新たな機能として構造的パターンマッチングが導入されました。この機能は、評価対象がパターンにマッチするかをチェックし、一致した場合の挙動を定義することができます。
match expression:
case pattern1:
...
case pattern2:
...
この新機能は、match
とcase
というキーワードを使用します。expression
の部分にはPythonの式を指定し、pattern
の部分にはマッチさせるパターンを指定します。
例えば、JSONレスポンスが特定のキーを含むかどうかを判断する際に、この機能を利用することができます。
match response:
case {'data': [{'id': _id}]}:
if _id > 51515: # guard
print('response 1', _id)
case {'data': [{'media': media}, *_]}:
print('response 2', media)
case {'errors': [{'code': code}, *_]}:
print('response 3', code)
このように、Pythonの構造的パターンマッチングは、単純な値での分岐の他に、データ構造やアトリビュートのパターンでの分岐なども可能となっています。これにより、Pythonのコードがより直感的で読みやすくなります。
この記事では、Python 3.10の構造的パターンマッチングとJSONの組み合わせについて解説しました。この新機能を活用して、より効率的なコードを書くことができるようになりましょう。