使用函式的詞典
另一種直接的方法是建立一個函式字典:
switch = {
1: lambda: 'one',
2: lambda: 'two',
42: lambda: 'the answer of life the universe and everything',
}
然後你新增一個預設函式:
def default_case():
raise Exception('No case found!')
並使用字典的 get 方法獲取給定值的函式以檢查並執行它。如果字典中不存在值,則執行 default_case
。
>>> switch.get(1, default_case)()
one
>>> switch.get(2, default_case)()
two
>>> switch.get(3, default_case)()
…
Exception: No case found!
>>> switch.get(42, default_case)()
the answer of life the universe and everything
你也可以製作一些語法糖,這樣開關看起來更好:
def run_switch(value):
return switch.get(value, default_case)()
>>> run_switch(1)
one