Python生成器和迭代器理解:Python3:不是生成器的迭代器

我试图理解迭代器和生成器之间的区别。我读到“每个生成器都是一个迭代器,但反之亦然。”

有人可以给出一个对象的例子,它是一个迭代器,但不是一个生成器?

我的意思是,如果一个对象具有方法next(这是迭代器的定义),我们也可以将其称为生成器,不是吗?

UPD:对于那些说生成器必须具有yield的人-并不总是。(i * * 2 为 i 在范围(1,5))没有产量,也是一个发电机。

对于那些说 iter([1,2,3])不是生成器的人-为什么?

0

“每个生成器都是一个迭代器,但反之亦然。

Python glossary给出了 3 个以“generator”开头的条目。

发电机

这是任何带有yield语句的函数。生成器函数不是迭代器,但在调用它时返回迭代器。

def getSquares(n):
    for i in range(n):
        yield i**2

生成器迭代器

这是由生成器函数返回的东西。

生成器表达式

这只是括号内的理解。

(i**2 for i in range(10))

当你对它们调用type时,生成器表达式和生成器函数的返回值都给出<class 'generator'>。但是,如果你用__next__方法定义你自己的类,它的实例当然会将该类作为它们的type

0

有人可以给出一个对象的例子,它是一个迭代器,但不是一个生成器?

Python 中的 Generator 通常表示一个函数,但也可以表示由该函数创建的迭代器。

有人可以给出一个对象的例子,它是一个迭代器,但不是一个生成器迭代器?

这里是:

class MyIterator:
    def __init__(self):
        self.n = 0
    def __iter__(self):
        return self
    def __next__(self):
        if self.n == 4:
            raise StopIteration
        n, self.n = self.n, self.n + 1
        return n
it = MyIterator()
print(next(it))
print(next(it))
print(next(it))
print(next(it))
print(next(it))

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(655)
Core文件怎么查看:Angular:core.module样式怎么了
上一篇
Cie r:颜色:CIEXYZ模型-色度图
下一篇

相关推荐

  • python精度:如何利用Python来提高精度

    Python精度是指Python程序在数值计算时所能提供的最大精度。它取决于Python程序使用的数字类型,以及Python解释器的精度。…

    2023-04-01 04:27:43
    0 15 93
  • python界面开发构建一个简单、可靠的用户界面

    Python界面开发是指使用Python语言来创建图形用户界面(GUI)的过程。它可以帮助你创建可视化的应用程序,使用户能够与你的程序交互。…

    2023-03-18 10:39:36
    0 53 12
  • python 软件测试深入了解如何确保质量

    Python软件测试是一种使用Python编写的自动化测试,它可以帮助开发人员进行软件测试。Python软件测试主要涉及到三个方面:单元测试、集成测试和系统测试。…

    2023-08-14 11:34:51
    0 77 46
  • pythonlist切片:利用Python列表切片获取最大价值

    示例示例Python列表切片是指从列表中提取特定范围的元素,而不需要遍历整个列表。 列表切片使用方括号[]和冒号:来表示,其形式如下:list[start:end:step]…

    2023-07-31 01:45:29
    0 36 63
  • python imread函数一步搞定!

    Python imread函数是用于从图像文件读取图像数据的函数,它是由Scipy库提供的。它可以从多种格式的图像文件中读取图像数据,包括JPEG、PNG、TIFF、GIF等。…

    2023-05-26 15:06:44
    0 40 63
  • python 创建列表:使用Python创建一个强大的列表

    示例示例Python创建列表的方法有多种,下面介绍其中几种常用的方法。使用 [] 创建空列表…

    2023-03-03 12:56:32
    0 75 51
  • pythonweb服务器:如何使用Python搭建Web服务器

    Python Web服务器是一种使用Python语言编写的Web服务器,它可以接受HTTP请求并返回相应的响应。Python Web服务器可以处理动态内容,比如数据库查询,文件上传,CGI脚本等。…

    2023-01-24 10:13:27
    0 66 81
  • python窗口代码从入门到精通

    Python窗口代码是使用Python语言创建GUI(图形用户界面)应用程序的一种方式。它使用Python的tkinter模块,可以快速创建简单的窗口,并使用其中的控件进行交互。下面是一个简单的窗口示例:…

    2023-07-04 11:48:45
    0 19 88

发表评论

登录 后才能评论

评论列表(59条)