(a)我不明白if … elif … else有什么问题
(b)我假定python出于与Smalltalk相同的原因而没有switch语句:它几乎完全是多余的,并且在要打开类型的情况下,可以向类中添加适当的方法;同样,打开值应该在很大程度上是多余的。
注意:
我在评论中得知,无论Guido首先不创建开关的原因,都拒绝添加它的PEP,原因是对添加这样的声明的支持非常有限。请参阅:http://www.python.org/dev/peps/pep-3103/
(c)如果您确实需要切换行为,请使用哈希表(
dict)存储可调用对象。结构为:
switch_dict = { Foo: self.doFoo, Bar: self.doBar, }func = switch_dict[switch_var]result = func() # or if they take args, pass args


