getiterator()和iter()wrt与lxml有什么区别

时间:2010-06-19 19:53:53

标签: python lxml

正如问题所说,有什么区别:

x.getiterator()x.iter(),其中x是ElementTree还是Element?因为它似乎适用于两者,我已经尝试过了。

如果我在某处错了,请纠正我。

2 个答案:

答案 0 :(得分:6)

Python documentation for ElementTree表示从版本2.7开始不推荐使用getiterator()方法,并说使用Element.iter()lxml API documentation表示相同,但​​也提到lxml中getiterator()的实现与原始ElementTree行为不同。

有趣的是,文档还指出“如果你想要一个高效的迭代器,请使用tree.iter()方法”。请注意“有效”这个词,这让我相信getiterator()iter()之间的实施肯定存在差异,但如果没有检查来源,我就无法100%确定。

无论如何,如果某件事已被弃用,很明显他们不希望你使用它。

答案 1 :(得分:0)

getiterator是此方法的ElementTree标准拼写; iter是一种等效的lxml唯一方法,可以阻止您的代码在ElementTree中工作,如果您需要它,并且似乎没有任何兑换品质,除非您不再输入7个字符方法名称; - )。