迭代器和生成器的区别
迭代器和生成器的区别
如果说迭代器是以类为基础的单位产生器,那么生成器(generator)就是以函数为基础的单位产生器。也就是说,迭代器和生成器都是一个值一个值得生产,每迭代一次,只能得到一个值,
所不同的是,迭代器需要在类中定义__iter__和__next__方法,在使用时需要创建迭代器的实例。而生成器是通过一个函数展现的,可以直接调用,
所以从某种意义上来说,生成器在使用上更简洁。
迭代器和生成器的区别
如果说迭代器是以类为基础的单位产生器,那么生成器(generator)就是以函数为基础的单位产生器。也就是说,迭代器和生成器都是一个值一个值得生产,每迭代一次,只能得到一个值,
所不同的是,迭代器需要在类中定义__iter__和__next__方法,在使用时需要创建迭代器的实例。而生成器是通过一个函数展现的,可以直接调用,
所以从某种意义上来说,生成器在使用上更简洁。