我现在正在编写一个脚本,它将使用 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方法进行适当的更改来实现这一点?希望你知道我的意思:)
干杯