Pythonには、他の言語のようなswitch-case
ステートメントは存在しませんが、Python 3.10から導入されたmatch-case
構文を使うことで、範囲指定によるcaseステートメントを実装することが可能です。
以下に、範囲指定によるcaseステートメントの一例を示します。
class Switch(dict):
def __getitem__(self, item):
for key in self.keys(): # iterate over the intervals
if item in key: # if the argument is in that interval
return super().__getitem__(key) # return its associated value
raise KeyError(item) # if not in any interval, raise KeyError
# Now you can use ranges as keys:
switch = Switch({ range(1, 21): 'a', range(21, 31): 'b' })
# And a few examples:
print(switch[4]) # Outputs: a
print(switch[21]) # Outputs: b
このコードでは、Switch
という新しいクラスを定義し、その中で__getitem__
メソッドをオーバーライドしています。このメソッドは、辞書のキーを引数として受け取り、そのキーがどの範囲に含まれるかを判断します。キーが範囲に含まれていれば、その範囲に関連付けられた値を返します。キーがどの範囲にも含まれていなければ、KeyError
を発生させます。
このように、Pythonの強力な辞書と範囲オブジェクトを組み合わせることで、範囲指定によるcaseステートメントを実装することができます。これは、特定の範囲に基づいて異なる動作をするプログラムを書く際に非常に便利です。
以上が、Pythonでの範囲指定によるcaseステートメントの実装方法についての記事です。この情報が皆さんのPythonプログラミングに役立つことを願っています。