我的编程空间,编程开发者的网络收藏夹
学习永远不晚

生成器里 return 的作用是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

生成器里 return 的作用是什么

这篇文章主要讲解了“生成器里 return 的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“生成器里 return 的作用是什么”吧!

在粉丝群里,有一位同学问了这样一个问题:

def gen_data(num):     if num > 10:         for i in range(num):             yield i     else:         return num  generator = gen_data(5) for num in generator:     print(num)

当传入的的参数小于等于10 的时候,为什么没有返回这个参数本身?

这道题,当我们传入的参数大于10的时候,能得到符合预期的结果,如下图所示:

生成器里 return 的作用是什么

但是,当我们传入数据5的时候,我们来看看运行效果:

生成器里 return 的作用是什么

可以看到,数字5并没有被打印出来,程序直接运行到了最后。

之所以会出现这种情况,是因为这个同学以为,当参数大于10的时候,gen_data(12)返回的是生成器,而当参数不大于10的时候,返回的是一个数字。显然这样的想法是不对的,否则,for  num in 10这种语法早就报错了,数字是不能被迭代的。

正确的说法应该是,因为gen_data里面有yield,所以gen_data(参数)返回一个生成器。无论参数传入的是什么,返回的都是生成器。如下图所示:

生成器里 return 的作用是什么

为了说明为什么传入参数为5的时候,for 循环不执行,我们简化一下代码:

def gen_data():     yield 1     yield 2     yield 3     return 4  generator = gen_data() for num in generator:     print(num)

运行效果如下图所示:

生成器里 return 的作用是什么

可以看到,对于这样一个非常简单的生成器,在 for 循环里面也只是打印了数字123,并没有打印数字4。

关于生成器中的return,我们可以从 Python 官方文档PEP 255 — Simple Generators[1]中找到说明:

生成器里 return 的作用是什么

return  在生成器中,表示生成器运行完成了,可以结束了。然后生成器会抛出一个StopIteration的异常。而for循环能够检测到这个异常,于是结束循环。所以当我们传入的参数为5的时候,生成器直接运行到了  return,于是它直接就抛出StopIteration,于是 for 循环检测到这个异常就结束了。

在生成器里面的return只是一个结束标志,它不会把后面写的值返回给调用者。这跟函数里面的return语句是不一样的。

感谢各位的阅读,以上就是“生成器里 return 的作用是什么”的内容了,经过本文的学习后,相信大家对生成器里 return 的作用是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

生成器里 return 的作用是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

c++ return的作用是什么

在C++中,return语句用于结束函数的执行并返回一个值给调用者。它可以返回一个具体的数值、变量或者表达式的值。当函数执行到return语句时,函数将立即返回并将return语句后面的值传递给调用者。如果函数的返回类型不是void,则re
c++ return的作用是什么
2024-03-02

return语句的作用是什么

本篇内容介绍了“return语句的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!return语句的作用是什么:答:return功能
2023-07-02

java中return的作用是什么

在Java中,return关键字用于终止当前的方法,并返回一个值(或者不返回值)。它的主要作用有以下几个:1. 返回值:当一个方法有返回类型时,使用return语句返回一个值作为方法的结果。返回值的类型必须与方法的返回类型一致。2. 终止方
2023-08-15

c#中yield return的作用是什么

在C#中,yield return关键字用于在一个可枚举集合中定义一个迭代器方法。通过使用yield return,可以更简单、更清晰地实现自定义的迭代器逻辑,而无需实现完整的类或接口。具体来说,yield return关键字可以在迭代器
c#中yield return的作用是什么
2024-03-04

python迭代器和生成器的作用是什么

这篇文章主要讲解了“python迭代器和生成器的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python迭代器和生成器的作用是什么”吧!说明1、容器是可迭代对象,可迭代对象调用i
2023-06-20

GitLab加密钥的作用是什么?怎么生成?

GitLab是一个开源的代码托管平台,它为开发者提供了许多便利操作,例如版本控制、协作开发、自动化部署等。在使用GitLab进行开发流程中,为了保证代码的安全性,我们需要使用加密钥来保护我们的代码。下面来了解一下。GitLab加密钥的作用在
2023-10-22

return语句的作用和echo的区别是什么

这篇文章将为大家详细讲解有关return语句的作用和echo的区别是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。return语句的作用:具有return语句的函数是具有返回值的函数没有return语
2023-06-15

python中return的用法是什么

在Python中,`return` 用于从函数中返回一个值。当函数执行到 `return` 语句时,函数将立即停止执行,并将指定的值返回给函数的调用者。`return` 语句可以有以下几种用法:1. 返回一个值:可以使用 `return`
2023-08-19

php中return的用法是什么

这篇文章主要讲解了“php中return的用法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中return的用法是什么”吧!在php中,return在函数中使用,用于返回函数值和
2023-06-20

Java中switch return的用法是什么

在Java中,switch语句可以用来根据表达式的值选择执行不同的代码块。在switch语句中,可以使用return语句来终止switch语句并返回一个值。在switch语句中使用return语句的主要作用是在执行特定的case时,立即返
Java中switch return的用法是什么
2024-03-08

Python中的生成器原理是什么

这篇文章主要介绍“Python中的生成器原理是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的生成器原理是什么”文章能帮助大家解决问题。什么是python生成器生成器是一种特殊的迭
2023-07-06

python中生成器的原理是什么

这篇文章将为大家详细讲解有关python中生成器的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,
2023-06-14

SAP MM Planning File 作用及其生成方式是什么

今天就跟大家聊聊有关SAP MM Planning File 作用及其生成方式是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。SAP MM Planning File 作用及其生
2023-06-05

J-Hi的生成器有什么用

这篇文章给大家分享的是有关J-Hi的生成器有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。数据库相关对应不同的数据库J-Hi会生成不同的数据库脚本文件,生成的文件会临时存放在web/db目录下的相关数据库(
2023-06-17

编程热搜

目录