纯python中的switch case
switchcase的Python项目详细描述
switchcase在纯python中实现了一个简单的switch case构造。
在hood下,switch函数的工作原理是只返回一个length-1 包含匹配函数的列表。整个实现过程有3行:
fromoperatorimporteqdefswitch(value,comp=eq):return[lambdamatch:comp(match,value)]
基本用法
>>>fromswitchcaseimportswitch>>>deffunc(x):...forcaseinswitch(x):...ifcase(0):...print("x was 0")...break...ifcase(1):...print("x was 1")...break...else:...print("x was unmatched")>>>func(0)"x was 0">>>func(1)"x was 1">>>func(2)"x was unmatched"
自定义比较
默认情况下,switch使用operator.eq比较传递给 switch和随后传递给case的值。您可以覆盖 此行为通过将比较器函数作为秒传递给switch。 争论。
>>>importre>>>fromswitchcaseimportswitch>>>deff(x):...out=[]...forcaseinswitch(x,comp=re.match):...ifcase("foo_bar"):...out.append(0)...break...ifcase("foo_.*"):...out.append(1)...ifcase(".*_bar"):...out.append(2)...returnout>>>f("foo_bar")[0]>>>f("foo_notbar")[1]>>>f("notfoo_bar")[2]>>>f("foo____bar")[1,2]