【发布时间】:2010-09-21 15:13:49
【问题描述】:
我现在正在编写一个脚本,它将使用 dom4j 从 HTML 中获取某些信息。
由于 Python/Jython 没有原生 switch 语句,我决定使用一大堆调用适当方法的 if 语句,如下所示:
if type == 'extractTitle':
extractTitle(dom)
if type == 'extractMetaTags':
extractMetaTags(dom)
我将根据我想从 HTML 中提取的信息添加更多内容,并考虑采用我在本网站其他地方找到的字典方法,示例如下:
{
'extractTitle': extractTitle,
'extractMetaTags': extractMetaTags
}[type](dom)
我知道每次运行脚本时都会构建字典,但同时如果我要使用 if 语句,脚本必须检查所有这些语句,直到它击中正确的一个。我真正想知道的是,哪一个表现更好或通常是更好的做法?
更新: @Brian - 感谢您的精彩回复。我有一个问题,如果任何提取方法需要多个对象,例如
handle_extractTag(self, dom, anotherObject)
# Do something
您将如何对 handle 方法进行适当的更改来实现这一点?希望你明白我的意思:)
干杯
【问题讨论】:
标签: python switch-statement jython