Pythonでは、switch
文が直接サポートされていませんが、enum
とdictionary
を組み合わせることで、switch
文のような動作を実現することが可能です。また、Python 3.10以降では、match-case
構文が導入され、パターンマッチングが可能になりました。
Enumを使ったSwitch文の実装
以下に、Pythonでenum
を使ってswitch
文を実装する例を示します。
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
def switch_color(color):
switch = {
Color.RED: "Apple",
Color.GREEN: "Kiwi",
Color.BLUE: "Sky",
}
return switch.get(color, "Unknown")
このコードでは、Color
というenum
を定義し、それぞれの色に対応する文字列をdictionary
で定義しています。そして、switch_color
関数では、引数として与えられた色に対応する文字列を返すようになっています。
Python 3.10のmatch-case構文
Python 3.10以降では、match-case
構文が導入されました。これにより、より直感的なswitch
文のような動作を実現することが可能になりました。
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"
このコードでは、HTTPステータスコードを引数として受け取り、それぞれのステータスコードに対応するエラーメッセージを返すようになっています。
以上が、Pythonでenum
を使ったswitch
文の実装方法と、Python 3.10のmatch-case
構文の使用例です。これらを活用することで、Pythonでもswitch
文のような動作を実現することが可能です。