yield的说明

参考文章:https://blog.csdn.net/mieleizhi0522/article/details/82142856/

yield可以简单的看成为一个return,可以和next()方法搭配起来使用,一次弹出一个值。下面的(res = yield 4)步骤并不会将4赋值给res变量,程序在这一步时是直接弹出数值4。要想在生成器里对变量进行赋值,可以采用send操作。参考代码如下:

def foo():
    print("starting...")
    while True:
        res = yield 4
        #print("res:",res)
g = foo()
print(next(g))
print("*"*20)
print(next(g))


#############22222222222###################
'''
def too():
    print("nichousha")
def foo():
    print("starting...")
    while True:
        res = yield 4
        print("res:",res)
c=too()
g = foo()
print(next(g))
print("*"*20)
print(g.send(7))
'''
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
yield函数是Python中的一个关键字,用于定义生成器函数。生成器是一种特殊的迭代器,它可以通过yield语句来暂停和恢复函数的执行,从而实现按需生成数据的功能。 通过yield函数,我们可以将一个函数转化为生成器函数,函数中包含yield语句的地方会被暂停执行,并返回一个值给调用者。当生成器函数再次被调用时,会从上次暂停的位置继续执行,直到再次遇到yield语句或函数结束。这种实现方式可以有效地节省内存,并提高性能。 下面以一个实例来详细说明yield函数的使用。 ``` def generate_numbers(n): i = 0 while i < n: yield i i += 1 numbers = generate_numbers(5) print(next(numbers)) # 输出:0 print(next(numbers)) # 输出:1 print(next(numbers)) # 输出:2 print(next(numbers)) # 输出:3 print(next(numbers)) # 输出:4 ``` 在这个例子中,generate_numbers是一个生成器函数。当调用它时,它会返回一个生成器对象。我们通过调用next()函数来获取生成器对象中的下一个值。每次调用next()函数时,函数会从yield语句处恢复执行,并返回yield关键字后的值。当生成器函数执行完毕时,通过调用next()函数会触发StopIteration异常。 通过这个例子,我们可以看到yield函数的实际应用:按需生成数据。在这个例子中,我们可以在使用generate_numbers函数时,只生成需要的数据,而不是一次性生成所有的数字。这样可以极大地节省内存,并提高程序的性能。 总的来说,yield函数的实例分析可以帮助我们更好地理解和使用生成器函数,从而在需要按需生成数据的场景下提供更加高效的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值