python - Python中的yield表达式的结果是什么?

标签 python generator yield

我知道yield把一个函数变成了一个生成器,但是yield表达式本身的返回值是多少呢?例如:

def whizbang(): 
    for i in range(10): 
        x = yield i

这个函数执行时变量x的值是多少?

我已阅读 Python 文档:http://docs.python.org/reference/simple_stmts.html#grammar-token-yield_stmt并且似乎没有提到 yield 表达式本身的值(value)。

最佳答案

您还可以将值发送 到生成器。如果没有发送值,则 xNone,否则 x 采用发送的值。以下是一些信息:http://docs.python.org/whatsnew/2.5.html#pep-342-new-generator-features

>>> def whizbang():
        for i in range(10):
            x = yield i
            print 'got sent:', x


>>> i = whizbang()
>>> next(i)
0
>>> next(i)
got sent: None
1
>>> i.send("hi")
got sent: hi
2

关于python - Python中的yield表达式的结果是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10695456/

相关文章:

python - Typing.Generator 的第二个和第三个类型参数是什么意思?

python - 从 pandas Python 和 Numpy 将 3D 数组转换为 2d 数组

python - 如何在数据框中使用 for 循环添加列?

python - 迭代器的写权限?或者 : sending values to generators of numpy Arrays

javascript - 将 ES6 生成器与 XMLHttpRequest 结合使用

python - 如何实现这个python生成器

Python素数生成器产量与返回

python - 正则表达式 unicode 字符不匹配

python - 在python中使用xslt转换多个xml文件

python - 在列表推导中创建多个生成器