python中为什么没有switch或case语句?
你可以通过一系列 if...elif...elif...else
.轻松完成这项工作。对于switch语句语法已经有了一些建议,但尚未就是否以及如何进行范围测试达成共识。有关完整的详细信息和当前状态,请参阅 PEP 275 。
对于需要从大量可能性中进行选择的情况,可以创建一个字典,将case 值映射到要调用的函数。例如:
deffunction_1(...):...
functions={"a":function_1,
"b":function_2,
"c":self.method_1,...}
func=functions[value]
func()
对于对象调用方法,可以通过使用 getattr()
内置检索具有特定名称的方法来进一步简化:
defvisit_a(self,...):...
...
defdispatch(self,value):
method_name="visit_"+str(value)
method=getattr(self,method_name)
method()
建议对方法名使用前缀,例如本例中的 visit_
。如果没有这样的前缀,如果值来自不受信任的源,攻击者将能够调用对象上的任何方法。
以上是 python中为什么没有switch或case语句? 的全部内容, 来源链接: utcz.com/z/520637.html