python生成器、迭代器

python生成器

函数里面有 yield 关键字。 就是生成器函数

 1 def  xrange():
 2     print(11)
 3     yield  1
 4 
 5     print(22)
 6     yield 2
 7 
 8     print(33)
 9     yield 3
10 #仅仅获取到一个生成器
11 r = xrange()
12 #生成器__next__方法,执行函数寻找下一个yield 。
13 ret = r.__next__()
14 print(ret)
15 
16 ret = r.__next__()
17 print(ret)
18 
19 ret = r.__next__()
20 print(ret)

生成器实现

 1 def  xrange(n):
 2     start = 0
 3     while True:
 4         if start > n:
 5             return
 6         yield start
 7         start +=1
 8 
 9 r = xrange(5)
10 
11 n1 = r.__next__()
12 
13 n2 = r.__next__()
14 
15 n3 = r.__next__()
16 
17 n4 = r.__next__()
18 
19 n5 = r.__next__()
20 
21 n6 = r.__next__()
22 print(n1,n2,n3,n4,n5,n6)

 迭代器

 

posted @ 2019-06-20 18:05  Freechen0  阅读(61)  评论(0)    收藏  举报