迭代就是循环的意思,也就是对一个集合中的元素进行循环,从而得到每一个元素。 迭代是读取多少元素,就将多少元素装载到内存中,不读取就不装载。这有点低昂处理XML的两种方式:DOM和SAX。DOM是一下子将多有的XML数据都装载到内存中,所以可以快速定位任何一个元素,但是代价是消耗内存;而SAX是顺序读取XML文档,每次读到的XML文档内容是不会装载到内存当中的,所以SAX比较节省内存。 如果在一个类中定义_iter_方法,那么这个类的实例就是一个迭代器。_iter_方法需要返回一个迭代器,所以就返回对象本身即可。当对象每迭代一次时,就会调用迭代器中的另外一个特殊成员方法_mext_。该方法需要返回当前迭代的结果。下面的例子中,通过自定义迭代器对由星号组成的直角三角形的每一行进行迭代,然后通过for循环进行迭代,输出一定的行数的直角三角形。 class RightTriangle: def init(self): #定义一个变量n,表示当前行数 self.n=1 def mext(self): #通过字符串的乘法获取执教三角形每一行的字符串,每一行的字符串长度是2n-1 result=''(2self.n - 1) #行数加1 self.n += 1 return result #该方法必须返回一个迭代器 def iter(self): return self rt=RightTriangle() for e in rt: #限制输出行的长度不能大于20,否则会无限输出行 if len(e)>20: break; print(e)