0

Mark Pilgrim による Dive into Python 3 を読んでいて、この一節に当惑しました。

「最終的にあなたを噛むfind()メソッドには「落とし穴」があります。ブールコンテキストでは、ElementTree要素オブジェクトは、子を含まない場合(つまり、len(要素)が0の場合)にFalseと評価されます。これ--if element.find('...')-- は、find() メソッドが一致する要素を見つけたかどうかをテストするのではなく、一致する要素に子要素があるかどうかをテストしていることを意味します! find() メソッドが要素を返しました。 --if element.find('...') が None でない場合 -- を使用してください。" 195ページ

私が理解していないのは、「なしではない」部分がTrueと評価される可能性があるということですよね?それでは、あいまいな結果を示す場合、このコンテキストでの find() 関数の目的は何ですか?

編集: つまり、「if」ステートメントが false と評価された場合、1) find() クエリに一致する要素内に子が見つからなかった、または 2) 要素内に子が存在しないことがわかります。 ! それはどのように役立ちますか?

4

1 に答える 1

0

私は答えを見つけました。それはかなり単純であることがわかりました。

find() メソッドは、子要素が見つからない場合は None を返し、子要素がない場合は false を返します。したがって、True --> 子が見つかり、False --> 要素に子がなく、None --> 要素に子がありませんが、クエリに一致するものはありませんでした。

于 2013-07-10T10:25:00.413 に答える