Pythonは、他のプログラミング言語(例えばC++やJava)のようなswitch文を持っていません。しかし、Python3.10から新たな制御文であるmatch文が導入されました。
Pythonのswitch文
Pythonを使い始めた人が最初に疑問に思うことの一つに「なぜswitch文がないのだろうか?」があります。C言語などでもお馴染みの機能で、ある変数の値によって3つ以上に処理の流れが分かれる場合に便利な機能です。Pythonではこれまで頑なにswitch文の導入を回避してきていました。
Python3.10のmatch文
Python3.10では、新たな制御文であるmatch文が導入されました。これは、他言語のSwitch文に似た機能を提供するものです。
以下に、Python3.10のmatch文の基本的な使用例を示します。
def http_error(status):
match status:
case 400:
return "Bad request"
case 404:
return "Not found"
case 418:
return "I'm a teapot"
case _:
return "Something's wrong with the Internet"
この例では、status
の値を見てそれに対応するエラーメッセージを返すというものです。最後の _
は何にでもマッチするワイルドカードのようなもので、これでデフォルト動作を定義しています。
Python3.10のmatch文は、Pythonがこれまで頑なに導入を避けてきたswitch文の代替となるもので、Pythonのコードをより読みやすく、効率的にするための新機能です。