【发布时间】:2010-06-19 19:53:52
【问题描述】:
正如问题所说,这之间有什么区别:
x.getiterator() 和 x.iter(),其中 x 是 ElementTree 还是 Element?因为它似乎对两者都有效,我已经尝试过了。
如果我在某处错了,请纠正我。
【问题讨论】:
正如问题所说,这之间有什么区别:
x.getiterator() 和 x.iter(),其中 x 是 ElementTree 还是 Element?因为它似乎对两者都有效,我已经尝试过了。
如果我在某处错了,请纠正我。
【问题讨论】:
Python documentation for ElementTree 声明 getiterator() 方法从 2.7 版开始已被弃用,并表示要使用 Element.iter()。 lxml API documentation 声明相同,但也提到 lxml 中 getiterator() 的实现与原始 ElementTree 行为不同。
有趣的是,文档还指出“如果您想要一个高效的迭代器,请改用 tree.iter() 方法”。请注意“高效”一词,这让我相信getiterator() 和iter() 之间的实现肯定存在差异,但如果不检查源代码,我不能100% 确定。
无论如何,如果某些东西已被弃用,很明显他们不想让你使用它。
【讨论】:
getiterator 是此方法的ElementTree 标准拼写; iter 是一个等效的 lxml-only 方法,如果你需要它,它将阻止你的代码在 ElementTree 中工作,并且似乎没有任何可取之处,除了让你不用再为方法名称输入 7 个字符;- )。
【讨论】: