Generator: function with yield - call next
- next
- yield
- StopIteration
We can create a function that has multiple yield
expressions inside.
We call the function and what we get back is a generator
.
A generator
is also an iterator
so we can call the next
function on it and it will give us the next yield
value.
If we call it one too many times we get a StopIteration
exception.
def number():
yield 42
yield 19
yield 23
num = number()
print(type(num))
print(next(num))
print(next(num))
print(next(num))
print(next(num))
Output:
<class 'generator'>
42
19
23
Traceback (most recent call last):
File "simple_generator_next.py", line 11, in <module>
print(next(num))
StopIteration