I know that yield turns a function into a generator, but what is the return value of the yield expression itself? For example:
def whizbang():
for i in
This code will produce some output
def test():
for i in range(10):
x = yield i
t = test()
for i in test():
print i
You can also send
values to generators. If no value is sent then x
is None
, otherwise x
takes on the sent value. Here is some info: 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