February 2006
Intermediate to advanced
648 pages
14h 53m
English
If a function uses the yield keyword, it defines an object known as a generator. A generator is a function that produces values for use in iteration. For example:
def count(n):
print "starting to count"
i = 0
while i < n:
yield i
i += 1
returnIf you call this function, you will find that none of its code executes. For example:
>>> c = count(100) >>>
Instead of the function executing, an iterator object is returned. The iterator object, in turn, executes the function whenever next() is called. For example:
>>> c.next() 0 >>> c.next() 1
When next() is invoked on the iterator, the generator function executes statements until it reaches a yield statement. The yield statement produces a result at which point execution of the ...