yield函数

yield函数20221123为什么引入yield节省内存,即用即取每次调用,执行到yield行return一个值,停止运行函数。下次调用,从yield的下一行接着执行。deffoo():print("starting…")whileTrue:print('sta

大家好,欢迎来到IT知识分享网。yield函数"

20221123

为什么引入yield

  1. 节省内存,即用即取

每次调用,执行到yield行return一个值,停止运行函数。下次调用,从yield的下一行接着执行。

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

output:
first step
starting…
start
4
********************

print(next(g))
res: None
start
4

print(g.send(7))
res: 7
start
4

from inspect import isgeneratorfunction 
print(isgeneratorfunction(foo()))
print(isgeneratorfunction(foo))

False
True

要注意区分 foo 和 foo(),foo 是一个 generator function,而 foo() 是调用 foo 返回的一个 generator

参考:
[1] https://www.runoob.com/w3cnote/python-yield-used-analysis.html
[2] https://blog.csdn.net/mieleizhi0522/article/details/82142856#:~:text=yield是一个常用于,,迭代器,生成器。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31815.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信