美文网首页
简谈 Python yield

简谈 Python yield

作者: 看远方的星 | 来源:发表于2023-02-15 09:42 被阅读0次

带yield的函数是一个生成器(generator),而不是一个函数了,这个生成器有一个函数就是next函数,next就相当于“下一步”生成哪个数,这一次的next开始的地方是接着上一次的next停止的地方执行的。[1]

先把yield看做“return”,在程序中返回某个值,返回之后程序就不再往下运行了。

程序执行遇到yield关键字,yield返回后面的值之后,程序暂停,直到再次调用next方法或send方法。

def foo():
    print("starting...")  # 输出starting...
    while True:
        res = yield 4     # 返回4,停止运行,不赋值,res为none.
        print("res:",res) # 输出res值
g = foo()
print(next(g))  # 从yield返回值,并停止
print("*"*20)   # 输出20个星号
print(next(g))  # 从上次停止的地方开始运行,直到遇到yield返回停止

# out:
# starting...
# 4
# ********************
# res: None
# 4
def foo():
    print("starting...")   # 输出starting...
    while True:
        res = yield 4      # 返回4,停止运行,不赋值,res为none.
        print("res:",res)  # 输出res值
g = foo()
print(next(g))   # 从yield返回值,并停止
print("*"*20)    # 输出20个星号
print(g.send(7)) # 从上次停止的地方开始运行,并将7赋值给res,直到遇到yield返回停止

# out:
# starting...
# 4
# ********************
# res: 7
# 4

参考文章


  1. python中yield的用法详解——最简单,最清晰的解释

相关文章

  • python yield和yield from用法总结

    python yield和yield from用法总结 yield 作用: 注: generator的next()...

  • python: yield

    python: yield

  • Python yield关键字

    Python中yield关键字解释 这篇文章关于python的yield关键字。并且文章中会解释什么是yield,...

  • Python yield

    参考:Python yield 使用浅析 - IBM 递归中使用yield 有时候yield就可以解决递归的问题,...

  • [python]yield用法简析

    一个简单的例子 输出的内容如下 定义了printf函数,函数的返回是个generator,类似于迭代器,遍历的方法...

  • python-复盘-yield & return区别

    python-复盘-yield & return区别

  • python 生成器和协程

    yield 对于python生成器中的yield来说,yield item会产出一个值,提供给next()的调用方...

  • Python yield

    Python yield的用法详解 如何快速的对yield有一个初步的了解,那么首先我们可以先将yield看做是r...

  • yield(对比return)

    带有 yield 的函数在 Python 中被称之为 generator(生成器),return和yield的形式...

  • 重构Python代码tips

    将内部循环中的yield替换为yield from经常忽略的一个小窍门是 Python 的yield关键字有对应的...

网友评论

      本文标题:简谈 Python yield

      本文链接:https://www.haomeiwen.com/subject/fjiykdtx.html