0

我正在阅读 Mark Pilgrim 的 Dive into Python 3,这段话让我感到困惑:

“find() 方法有一个“陷阱”,最终会咬你。在布尔上下文中,如果 ElementTree 元素对象不包含子对象(即,如果 len(element) 为 0),则它们将评估为 False。这表示 --if element.find('...')-- 不是测试 find() 方法是否找到匹配元素;它是测试匹配元素是否有任何子元素!测试 find() 方法是否返回一个元素,使用--if element.find('...') is not None--." 第 195 页

我不明白的是,“不是无”部分可能评估为真,对吧?那么 find() 函数在这种情况下的目的是什么,如果它显示出模棱两可的结果呢?

编辑:我的意思是,如果“if”语句的计算结果为 false,那么它会告诉我 1)它没有在与 find() 查询匹配的元素中找到子元素,或者 2)元素中没有子元素!这有什么帮助?

4

1 回答 1

0

我找到了答案,结果很简单。

如果没有找到子元素,find() 方法将返回 None,如果它没有子元素,则返回 false。所以 True --> 找到子项,False --> 元素中没有子项,None --> 元素中的子项,但没有一个匹配查询。

于 2013-07-10T10:25:00.413 回答