Skip to content

Commit e9d9ef6

Browse files
committed
update generator
1 parent ba8b995 commit e9d9ef6

1 file changed

Lines changed: 24 additions & 3 deletions

File tree

py3/advance/do_generator.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#!/usr/bin/env python3
22
# -*- coding: utf-8 -*-
33

4-
g = (x * x for x in range(10))
5-
print(g)
6-
for x in g:
4+
s = (x * x for x in range(5))
5+
print(s)
6+
for x in s:
77
print(x)
88

99
def fib(max):
@@ -12,8 +12,29 @@ def fib(max):
1212
yield b
1313
a, b = b, a + b
1414
n = n + 1
15+
return 'done'
1516

1617
f = fib(10)
1718
print('fib(10):', f)
1819
for x in f:
1920
print(x)
21+
22+
# call generator manually:
23+
g = fib(5)
24+
while 1:
25+
try:
26+
x = g.send(None)
27+
print('g:', x)
28+
except StopIteration as e:
29+
print('Generator return value:', e.value)
30+
break
31+
32+
# call generator using iter:
33+
i = iter(fib(5))
34+
while 1:
35+
try:
36+
r = next(i)
37+
print('i:', r)
38+
except StopIteration as e:
39+
print('Generator return value:', e.value)
40+
break

0 commit comments

Comments
 (0)