当前位置: 首页 > article >正文

《Pyhon入门:yield关键字常用用法》

《Pyhon入门:yield关键字常用用法》

在Python中,yieldreturn 都是用于从函数返回值的关键字,但它们有一些重要的区别。

  1. yield 关键字用于在函数中返回一个值,并暂停函数的执行。每次调用生成器时,都会从上次暂停的地方继续执行,直到遇到下一个 yield 关键字。生成器函数返回一个生成器对象。例如:

    def my_generator():
        yield 1
        yield 2
        yield 3
    
    gen = my_generator()
    print(next(gen))  # 输出: 1
    print(next(gen))  # 输出: 2
    print(next(gen))  # 输出: 3
    

    在上面的代码中,my_generator() 是一个生成器函数,使用 yield 关键字返回三个值。每次调用 next() 函数时,都会从上次暂停的地方继续执行,直到遇到下一个 yield 关键字。

  2. return 关键字用于从函数返回一个值,并结束函数的执行。当函数执行到 return 关键字时,函数会立即返回,不再执行后续的代码。例如:

    def my_function():
        return 1
    
    print(my_function())  # 输出: 1
    

    在上面的代码中,my_function() 是一个普通函数,使用 return 关键字返回一个值。当函数执行到 return 关键字时,函数会立即返回,不再执行后续的代码。

  3. yield 关键字和 return 关键字都可以用于返回值,但 yield 关键字返回的是一个生成器对象,而 return 关键字返回的是一个具体的值。例如:

    def my_generator():
        yield 1
        yield 2
        yield 3
    
    def my_function():
        return 1
    
    gen = my_generator()
    print(type(gen))  # 输出: <class 'generator'>
    print(type(my_function()))  # 输出: <class 'int'>
    

    在上面的代码中,my_generator() 是一个生成器函数,使用 yield 关键字返回三个值。my_function() 是一个普通函数,使用 return 关键字返回一个值。gen 是一个生成器对象,my_function() 的返回值是一个整数。

    4.在Python中,yield from 关键字用于将一个生成器中的所有元素返回给调用者。它允许生成器将生成任务委派给另一个生成器。yield from 关键字的使用方法如下:

    def gen1():
        yield 1
        yield 2
        yield 3
    
    def gen2():
        yield 4
        yield 5
        yield 6 
        yield from gen1()
    
    for i in gen2():
        print(i)
    

    在上述代码中,gen2() 是一个生成器函数,使用 yield from 关键字将 gen1() 生成器中的所有元素返回给调用者。yield from gen1() 相当于 yield 1 yield 2 yield 3yield from gen1() 相当于 yield from (1,2,3)

    yield from 关键字和 yield 关键字都可以用于返回值,但 yield from 关键字返回的是一个生成器对象,而 yield 关键字返回的是一个具体的值。例如:

    def my_generator():
        yield 1
        yield 2
        yield 3
    
    def my_function():
        return 1
    
    gen = my_generator()
    print(type(gen))  # 输出: <class 'generator'>
    print(type(my_function()))  # 输出: <class 'int'>
    

    在上述代码中,my_generator() 是一个生成器函数,使用 yield 关键字返回三个值。my_function() 是一个普通函数,使用 return 关键字返回一个值。gen 是一个生成器对象,my_function() 的返回值是一个整数。

以上就是 yield 关键字和 return 关键字的区别。


http://www.kler.cn/news/363552.html

相关文章:

  • 后端消息推送方案方案(轮询,长轮询,websocket,SSE)
  • 【QT】QChart绘制曲线与散点图
  • 苍穹外卖05
  • Scala的trait特质
  • SIP 业务举例之 三方通话:邀请第三方加入的信令流程
  • Vue项目的创建
  • solana phantom NFT图片显示不出来?
  • 【含开题报告+文档+PPT+源码】基于SpringBoot和Vue的编程学习系统
  • 鸿蒙中富文本编辑与展示
  • 资料下载 | ENOVIA企业集成框架解决方案
  • Spring Boot集成Shiro认证
  • Android 两种方式实现类似水波扩散效果
  • 手机pdf阅读器,用手机也能够阅读、编辑pdf文件
  • 右键以vscode打开目录的时候出现找不到应用程序
  • 亿佰特CAN转422、232、485模块解决高于115200波特率时设备失联问题
  • 一文掌握 jetbrains IDE 新 UI,还不会新 UI 的同学快看过来
  • OpenMediaVault安装插件以及重置web控制台密码
  • 软考攻略/超详细/系统集成项目管理工程师/基础知识分享18
  • Uefi Application小游戏开发之推箱子
  • idea启动报错:com.intellij.diagnostic.PluginException
  • 【数据结构】专栏开篇 | 1024程序员节
  • 信息库:Air780E量产binpkg文件的获取途径探究!
  • EureKa是什么?
  • 内存溢出与内存泄漏详解!
  • goframe开发一个企业网站 权限设计1
  • 初始JavaEE篇——多线程(3):可重入锁、死锁、内存可见性、volatile关键字