現在、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メソッドに適切な変更をどのように加えますか? あなたが私が何を意味するか知っていることを願っています:)
乾杯