广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件专业 > Python专业 > 正文

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

作者:张荣德发布时间:2022-11-25分类:Python专业浏览:459


导读:你可以通过一系列if...elif...elif...else.轻松完成这项工作。对于switch语句语法已经有了一些建议,但尚未就是否以及如何进行范围测试达成共识。有...

你可以通过一系列 if... elif... elif... else.轻松完成这项工作。对于 switch 语句语法已经有了一些建议,但尚未就是否以及如何进行范围测试达成共识。有关完整的详细信息和当前状态,请参阅 PEP 275 。
对于需要从大量可能性中进行选择的情况,可以创建一个字典,将 case 值映射到要调用的函数。例如:

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_ 。如果没有这样的前缀,如果值来自不受信任的源,攻击者将能够调用对象上的任何方法。



Python专业排行
标签列表
网站分类
文章归档
最近发表