Python 3.10では、新たにパターンマッチングという機能が導入されました。これは、他の言語でよく見られるcase文のようなものです。
具体的には、以下のようなコードが書けます。
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
の値に応じて異なる文字列を返しています。case _:
は、どのcaseにも該当しない場合に実行されます。
また、Python 3.10以前では、辞書を使って同様のことを実現していました。
def zero():
print("You typed zero.\n")
def sqr():
print("n is a perfect square\n")
def even():
print("n is an even number\n")
def prime():
print("n is a prime number\n")
options = {0 : zero, 1 : sqr, 4 : sqr, 9 : sqr, 2 : even, 3 : prime, 5 : prime, 7 : prime,}
options[num]()
このように、Python 3.10のパターンマッチングとcase文は、より直感的で読みやすいコードを書くための強力なツールとなります。