我知道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)。
最佳答案
您还可以将值发送
到生成器。如果没有发送值,则 x
为 None
,否则 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/