yeild关键字
在Python中,yield
是一种关键字,用于定义生成器函数,生成器函数可以像普通函数一样被调用,但是它们可以使用yield
语句暂停函数的执行并在后续调用中恢复它。
示例1
下面是一个简单的例子,演示了如何使用yield
关键字定义一个生成器函数:
def my_generator(): yield 1 yield 2 yield 3
在上面的代码中,my_generator()
是一个生成器函数,它包含三个yield
语句,分别生成数字1、2和3。当函数被调用时,它并不会立即执行,而是返回一个生成器对象。然后,每次调用生成器对象的__next__()
方法时,函数会从上次暂停的地方恢复执行,并在下一个yield
语句处再次暂停,返回生成器值。
例如:
gen = my_generator() print(next(gen)) # 输出 1 print(next(gen)) # 输出 2 print(next(gen)) # 输出 3
此外,生成器函数还可以使用yield from
语句来将控制权转移给另一个可迭代对象。这样做可以简化生成器函数的代码,避免嵌套使用多个循环语句。
例如:
def my_generator(): yield from [1, 2, 3]
在上面的代码中,yield from
语句会将控制权传递给列表[1, 2, 3]
,这个列表中的元素会被逐个生成。因此,调用my_generator()
遍历后 会生成数字1、2和3。
示例2
def foo(): print("starting...") while True: res = yield 4 print("res:",res) g = foo() print(next(g)) print("*"*20) print(next(g))
output:
starting... 4 ******************** res: None 4
可参考:
https://blog.csdn.net/mieleizhi0522/article/details/82142856
https://github.com/walter201230/Python/blob/master/Article/supplement/Python关键字yield.md
本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/17322005.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步