【发布时间】:2014-02-20 17:21:58
【问题描述】:
假设你有类似下面的东西:
def case_A():
print 'A'
def case_B():
print 'B'
def case_generic():
print 'some generic case'
而value 已定义并具有一定的价值
您是否看到任何不想应用以下模式的场景:
v = {"A":case_A, "B":case_B}
try:
v[value]()
except:
case_generic()
代替标准:
if value == "A":
case_A()
elif value == "B":
case_B()
...place n more if cases here...
else:
case_generic()
对我来说,第一个案例看起来更加紧凑且易于管理,尽管内存略有增加。或者,您是否看到任何改进上述方法或使用更好的方法的方法?
【问题讨论】:
-
基本上是codereview吧?
-
有点,我一直在考虑如何在不使用条件的情况下实现分支,并一直在玩上面的问题,想知道在哪些情况下它会无效
标签: python if-statement data-structures dictionary