优秀的编程知识分享平台

网站首页 > 技术文章 正文

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

nanyue 2024-07-20 23:46:01 技术文章 9 ℃

你可以用一系列的方法很容易地做到这一点。有一些关于switch语句语法的建议,但是关于是否以及如何进行范围测试还没有一致意见。看到if... elif... elif... elsePEP 275获取完整的细节和当前状态。

对于需要从大量可能性中进行选择的情况,您可以创建一个字典映射案例值给要调用的函数。例如:

def function_1(...):
...functions = {'a': function_1,
'b': function_2,
'c': self.method_1, ...}func = functions[value]func()

为了在对象上调用方法,您可以通过使用getattr()内置的特定名称检索方法来进一步简化 :

def visit_a(self, ...):
......def dispatch(self, value):
method_name = 'visit_' + str(value)
method = getattr(self, method_name)
method()

建议您为方法名称使用前缀,例如visit_在本例中。没有这样的前缀,如果值来自不受信任的源,攻击者就可以调用对象上的任何方法

最近发表
标签列表