正如问题所说,有什么区别:
x.getiterator()
和x.iter()
,其中x
是ElementTree还是Element?因为它似乎适用于两者,我已经尝试过了。
如果我在某处错了,请纠正我。
答案 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个字符方法名称; - )。