switch/case equivalence in Python
Python 默认的选择分支语句只有 if ... elif ... else,对于比较多的分支,这么写看起来有点傻,不符合 Python 的 geeky 特性。搜索了一下,觉得下面这个用 Dictionary 的办法不错:
cases = {
'a': f1,
'b': f2,
'c': f3,
'd': f4
}
r = cases.get(v, defaultF)(param)
分别定义过程 f1 到 f4 以及 defaultF,这样根据 v 的取值(比如 'a' 到 'd')会执行 f1 到 f4,如果 v 是其他值则执行 defaultF。注意 Dictionary 中的函数名后面不要带括号,否则就成了调用而不是引用了。
这个不错。虽然似乎没有switch/case效率高,但是看上去很优雅~
师兄开始用python了
不错,学习了。
不过有时候可能还是得用if elif
if a>b then
elif a>c then
elif a<d
elif a==e
哈哈,昨天刚看到你的文章下午就用到了。