xxxxxxxxxx
def func():
L = [10, 20, 30, 40, 50, 60]
for i in L:
yield i
for i in func():
print(i)
xxxxxxxxxx
# A generator-function is defined like a normal function,
# but whenever it needs to generate a value,
# it does so with the yield keyword rather than return.
# If the body of a def contains yield,
# the function automatically becomes a generator function.
# Python 3 example
def grepper_gen():
yield "add"
yield "grepper"
yield "answer"
grepper = grepper_gen()
next(grepper)
> add
next(grepper)
> grepper
next(grepper)
> answer
xxxxxxxxxx
def count_to_ten_generator():
for number in range(10):
yield number
my_generator = count_to_ten_generator()
first_number = next(my_generator)
list_or_the_rest = list(my_generator)
xxxxxxxxxx
def my_generator():
for i in range(10):
yield i
for i in my_generator():
print(i)
xxxxxxxxxx
# A recursive generator that generates Tree leaves in in-order.
def inorder(t):
if t:
for x in inorder(t.left):
yield x
yield t.label
for x in inorder(t.right):
yield x