python中为什么没有switch或case语句?

python

你可以通过一系列 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

回到顶部