在生成器函数上使用 next()

2023-11-23

我有这个生成器功能:-

def gen():
    for i in range(3):
        yield i*i

现在当我打电话时next() on gen(),它每次都给出第一个元素。

>>> next(gen())
0
>>> next(gen())
0

但是当我在一个for循环,它按预期工作:

>>> for i in gen():
...     print(i)
... 
0
1
4

有人可以解释这种效果的原因以及我在这里缺少的概念吗?


每次调用时,您的函数都会返回一个新的生成器gen().

我认为最简单的理解方法就是对比你正在做的事情:

>>> next(gen())
0
>>> next(gen())
0

有了这个:

>>> my_gen = gen()
>>> next(my_gen)
0
>>> next(my_gen)
1
>>> next(my_gen)
4
>>> next(my_gen)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

在后一种情况下,我从same发电机。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在生成器函数上使用 next() 的相关文章

随机推荐

  • 使用 AvalonDock 2.0 时未处理的“System.ComponentModel.Win32Exception”

    我在用着阿瓦隆码头2 0 当我打开一个停靠容器时 在调试模式下应用程序崩溃 在没有调试的情况下运行时它工作正常 我得到以下异常 System ComponentModel Win32Exception 类型的未处理异常 发生在Windows
  • Mongoose“反向”填充,即根据子模式中定义的引用填充父对象

    让我们借用优秀的example from scaryguy修改如下 项目组架构 var ProjectGroupSchema new Schema projectGroupId String title String 项目架构 var Pr
  • 使用VBA在默认浏览器中打开html页面?

    如何使用 VBA 在默认浏览器中打开 HTML 页面 我知道它是这样的 Shell http myHtmlPage com 但我想我必须引用将打开该页面的程序 您可以使用Windows API函数ShellExecute这样做 Option
  • 同步框架资源

    我正在寻找有关 Microsoft Sync Framework 的资源 尽管 MSDN 和 Google 搜索为我提供了简要概述 但我想要一些演示和演示 另外 Live Mesh 是基于 Sync Framework 的吗 也许这些链接会
  • 通用选择器对性能有什么影响?

    我试图在每月接收数百万页面浏览量的页面中找到一些简单的客户端性能调整 我担心的一个问题是 CSS 通用选择器的使用 作为示例 请考虑一个非常简单的 HTML 文档 如下所示
  • Objective-C中UIImage的平均颜色值

    我需要目标 c 中图像的平均颜色值 我想创建它的颜色渐变 有人有想法吗 这是我尚未测试的实验代码 struct pixel unsigned char r g b a UIColor getDominantColor UIImage ima
  • 使用Object.wait(毫秒)来模拟睡眠

    这是我在维护的一些代码中看到的一段代码 Object lock new Object synchronized lock try lock wait 50000 Thread sleep 3000 catch Exception ex 开发
  • Internet Explorer 或任何浏览器 F1 按键都会显示您自己的帮助

    我想在按 F1 时显示用户选择的帮助文件 这应该适用于我测试应用程序的每个浏览器 如何停止显示默认帮助文件 AFAIK F1 键的默认操作可以在除 IE 之外的任何浏览器中更改 Microsoft 团队通常坚持在其应用程序中保持一致的用户体
  • 使用 OpenCV 从网络摄像头捕获视频时 QT GUI 冻结

    我正在使用 Opencv 进行一些实时视频处理 作为前端 我使用 QT 框架 在我的 GUI 上 我有一个输入图像窗口 映射到一个标签 和一个输出图像窗口 映射到另一个标签 和 3 个按钮 第一个用于开始输入视频捕获 第二个用于处理视频 代
  • Python-位置参数跟随关键字参数

    我有一个函数 它接受可变长度的参数 如下所述 我正在通过kwargs作为字典 但是我不明白为什么我会收到错误 class PanSearch object otp wait 30 def init self surname dob mobi
  • Python 时间转换 h:m:s 到秒

    我知道使用 timedelta 函数 您可以使用以下方法将秒转换为 h m s gt gt import datetime gt gt str datetime timedelta seconds 666 0 11 06 但我需要将 h m
  • 如何在不绑定工具的情况下使用 Windows ToolTip 控件

    我想使用本机 Windows 工具提示控件 纯 Win32 API 没有 MFC 的东西 我阅读了文档 似乎我必须发送 TTM ADDTOOL 消息才能将工具绑定到工具提示控件 只有在那之后我才能发送 TTM TRACKACTIVATE 和
  • Sql Server 网络配置协议不可用

    安装 SQL Server 2008 32 位后 我尝试将其配置为允许远程访问 所以我打开 SSCM sql server 配置管理器 将协议设置为启用 我在Sql Server网络配置下没有找到任何协议 我尝试过修复 卸载并重新安装 注册
  • 如何转储mysql数据库?

    我想只转储 mysql 数据库有数据的表 你能给我你的建议吗 这更有帮助 感谢和问候 瓦拉 库马尔 您可以使用 忽略表选项 但您必须首先找出哪些表是空的 因为这不能直接使用 mysqldump 实现 所以你可以做 mysqldump u u
  • 在CSS文件中使用相对URL,它相对于什么位置?

    当在CSS文件中定义背景图片URL之类的东西时 当使用相对URL时 它是相对于哪里的 例如 假设文件 stylesheets base styles css包含 div header background image url images
  • iOS中如何获取个人热点的子网掩码和广播地址

    我需要找到一种方法来查找 iOS 中我的个人热点的子网掩码和广播地址 我正在使用以下方法来查找设备的 IP 地址 如果它连接到 WiFi 但无法弄清楚如何获取个人热点的网络属性 NSString localIPAddress NSStrin
  • 从 Codeigniter 中的 URL 中删除 index.php

    我已经做了很多次了 但我又被困在这里 在不同的服务器中 并且无法弄清楚问题是什么 htaccess编辑完成
  • 在什么情况下“git pull”可能有害?

    我有一个同事声称git pull是有害的 每当有人使用它时就会感到不安 The git pull命令似乎是更新本地存储库的规范方法 是否使用git pull制造问题 它会产生什么问题 有没有更好的方法来更新 git 存储库 Summary
  • 模板和单独编译

    我想用 C 编写一个单独编译的程序 我写了这样的 main cpp include
  • 在生成器函数上使用 next()

    我有这个生成器功能 def gen for i in range 3 yield i i 现在当我打电话时next on gen 它每次都给出第一个元素 gt gt gt next gen 0 gt gt gt next gen 0 但是当