You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么xml.etree.ElementTree的Element实例布尔判断结果为False?

原因解释

xml.etree.ElementTree 中 Element 类的布尔求值逻辑为:仅当元素包含至少一个子元素时返回True,否则返回False,和元素本身是否为合法创建的实例无关。

你创建的 <foo> 标签属于无子元素的空元素,因此布尔求值结果为False,不会进入if分支执行打印逻辑。

正确判断写法

如果要校验变量是否为合法的非空Element实例,不要直接用布尔判断,改用如下写法:

if elt is not None:
    print('bar')

验证示例

当你给元素添加子元素后,布尔判断就会返回True:

import xml.etree.ElementTree as ET

elt = ET.Element('foo')
# 添加子元素
ET.SubElement(elt, 'child')
if elt:
  print('bar') # 此时会正常输出bar

内容的提问来源于stack exchange,提问作者arne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:27:01