实现一个简单的Switch 函数:
def case1(somearg):pass
def case2(somearg):
pass
def case3(somearg):
pass
switch={ 1: case1, 2: case2, 3: case3 }
switch[case](arg)
========================================================
具体的例子:
def case1_include(A,B):
if (A in B):
print "B include A"
else:
print "NO"
def case2_equal(A,B):
print "A equal B"
switch={"include" :case1_include,
"equal" :case2_equal}
AA= "include jpg"
BB= "sfsdfdsdaf.jpg"
CC= AA.split(' ',1)
switch["include"](CC[1],BB)
输出:B include A
======================================================
这种把逻辑和实现,或者逻辑和数据分离的方式,非常的好,
简洁,明了,易于维护。也有人说这种是类似表驱动的方式。。
参考文章:https://www.zhihu.com/question/21123544
http://baike.baidu.com/link?url=oHqpiEhgxilZkgrYshnFeUsS29jj4u--4PX_n2canUOA_dS1JgDFUbTXHFY376AJLw6pmM6ZC3gJ6ciyaaILf_2Qglt1arCzAeGvGg2m5UWURFLY4rsQt7Qo-PRJE37w