Python3.10では、新たにmatch
文が導入されました。これは他の言語でよく見られるswitch
文に似ていますが、Pythonのmatch
文はパターンマッチングを行うためのもので、文だけでなく式としても使用できます。
一方、switch
文は等価性のチェックを行うためのもので、文のみとして使用されます。
以下に、Python3.10のmatch
文の使用例を示します。
def where_am_i(point):
match point:
case (0, 0):
return "Origin"
case (0, y):
return f"Y={y}"
case (x, 0):
return f"X={x}"
case (x, y):
return f"X={x}, Y={y}"
case _:
raise ValueError("Not a point")
この例では、点を(x, y)
のタプルで表し、その位置に応じて異なる文字列を返しています。match
文は上から順にパターンをチェックし、マッチしたcase
文のブロックを実行します。
このように、Python3.10のmatch
文は、パターンマッチングを行い、コードの可読性を向上させ、より堅牢なコードを書くための便利な方法を提供します。
一方、従来のswitch
文は、特定の値に基づいて処理を分岐するためのもので、多くの言語で使用されています。しかし、Pythonにはswitch
文が存在せず、代わりにif-elif-else
文が使用されてきました。
Python3.10のmatch
文の導入により、Pythonでもswitch
文に似た構文を使用することが可能になり、より複雑なパターンマッチングを行うことができます。
以上が、Python3.10のmatch
文と従来のswitch
文の主な違いと使用例です。これらの情報がPythonのコーディングに役立つことを願っています。