写在开始
之前找的这个东西,因为C/C++和Java之类的都有switch,scala和其他的FP语言都有模式匹配,但是Python用了这么久都没记得哪里有说过多分支结构,所以这次找了一下这个.
实现方式
其实要我说的话这个就是Python的动态类型和高阶函数做到的,一个人说用dict,然后key是分支的那个条件,然后value对应的是他需要执行的那个函数,这样就行了.
简单实现一下吧:
def m_1(x):
return x+1
def m_2(x):
return x+2
def x_3(x):
return x+3
a = {1:m_1,2:m_2,3:m_3}
select = 1
data = 1
print(a[select](data))
大概就是这个意思吧,还是很简单的.
写在最后
这个还是挺简单的一种实现多分支结构的方法,不过也有Python常见的一些缺点,就是动态类型的话就没有代码补全了,所以只能自己手敲了,然后还有可能出现类型错误,也没办法自动检查,只能看技术了.