广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >生成器里 return 的作用是什么
  • 953
分享到

生成器里 return 的作用是什么

2024-04-02 19:04:59 953人浏览 安东尼
摘要

这篇文章主要讲解了“生成器里 return 的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“生成器里 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 的作用是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 生成器里 return 的作用是什么

本文链接: https://www.lsjlt.com/news/66270.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 生成器里 return 的作用是什么
    这篇文章主要讲解了“生成器里 return 的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“生成器里 return 的作用是什么”吧!在粉丝群里,...
    99+
    2022-10-19
  • javascript中return的作用是什么
    本篇内容介绍了“javascript中return的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2022-10-19
  • java中return的作用是什么
    在Java中,return关键字用于终止当前的方法,并返回一个值(或者不返回值)。它的主要作用有以下几个:1. 返回值:当一个方法有...
    99+
    2023-08-15
    java return
  • return语句的作用是什么
    本篇内容介绍了“return语句的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!return语句的作用是什么:答:return功能...
    99+
    2023-07-02
  • python迭代器和生成器的作用是什么
    这篇文章主要讲解了“python迭代器和生成器的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python迭代器和生成器的作用是什么”吧!说明容器是可迭代对象,可迭代对象调用ite...
    99+
    2023-06-20
  • return语句的作用和echo的区别是什么
    这篇文章将为大家详细讲解有关return语句的作用和echo的区别是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。return语句的作用:具有return语句的函数是具有返回值的函数没有return语...
    99+
    2023-06-15
  • GitLab加密钥的作用是什么?怎么生成?
    GitLab是一个开源的代码托管平台,它为开发者提供了许多便利操作,例如版本控制、协作开发、自动化部署等。在使用GitLab进行开发流程中,为了保证代码的安全性,我们需要使用加密钥来保护我们的代码。下面来了解一下。GitLab加密钥的作用在...
    99+
    2023-10-22
  • php中return的用法是什么
    这篇文章主要讲解了“php中return的用法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中return的用法是什么”吧!在php中,return在函数中使用,用于返回函数值和...
    99+
    2023-06-20
  • python中return的用法是什么
    在Python中,`return` 用于从函数中返回一个值。当函数执行到 `return` 语句时,函数将立即停止执行,并将指定的值...
    99+
    2023-08-19
    python return
  • vue里data要用return返回数据的原因是什么
    这篇“vue里data要用return返回数据的原因是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一...
    99+
    2022-10-19
  • vue里的data为什么要用return返回
    这篇文章主要为大家展示了“vue里的data为什么要用return返回”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue里的data为什么要用return返回...
    99+
    2022-10-19
  • Python中的生成器原理是什么
    这篇文章主要介绍“Python中的生成器原理是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的生成器原理是什么”文章能帮助大家解决问题。什么是python生成器生成器是一种特殊的迭...
    99+
    2023-07-06
  • es6生成器指的是什么意思
    这篇文章将为大家详细讲解有关es6生成器指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在es6中,生成器是设置迭代器的一个函数...
    99+
    2022-10-19
  • python中生成器的原理是什么
    这篇文章将为大家详细讲解有关python中生成器的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,...
    99+
    2023-06-14
  • 阿里云服务器生成备案授权码是什么
    通过生成备案授权码,云服务器的管理者可以控制和管理云服务器的使用权限,从而保障云服务器的安全性和稳定性。备案授权码是一个二维码,扫描后可以获得云服务器的相关信息,包括服务器的IP地址、用户名、密码等。 生成备案授权码的过程非常简单,用户只...
    99+
    2023-10-28
    阿里 服务器
  • python中生成器是什么意思
    这篇文章将为大家详细讲解有关python中生成器是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。生成器(Generator):通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量...
    99+
    2023-06-16
  • J-Hi的生成器有什么用
    这篇文章给大家分享的是有关J-Hi的生成器有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。数据库相关对应不同的数据库J-Hi会生成不同的数据库脚本文件,生成的文件会临时存放在web/db目录下的相关数据库(...
    99+
    2023-06-17
  • 二维码生成器在Python中的异步编程中的作用是什么?
    在现代软件开发中,异步编程已经成为了越来越流行的编程模式,它可以提高程序的响应速度和并发处理能力。Python作为一种流行的编程语言,也提供了强大的异步编程支持。在这篇文章中,我们将探讨二维码生成器在Python中的异步编程中的作用是什么...
    99+
    2023-08-15
    数据类型 异步编程 二维码
  • SAP MM Planning File 作用及其生成方式是什么
    今天就跟大家聊聊有关SAP MM Planning File 作用及其生成方式是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。SAP MM Planning File 作用及其生...
    99+
    2023-06-05
  • 什么是分布式ID生成器Tinyid
    本篇内容介绍了“什么是分布式ID生成器Tinyid”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Tinyi...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作