- 生成器 generator
- 关键词
yield
:保存上一次的执行状态,__next__
:执行函数寻找下一个yielddef xrange(): print(11) yield 1 print(22) yield 2 print(33) yield 3 # 仅仅获取了一个生成器 r = xrange() # 生成器的__next__方法,执行函数寻找下一个yield ret = r.__next__() print(ret) """ 11 1 """ ret = r.__next__() print(ret) """ 22 2 """ ret = r.__next__() print(ret) """ 33 3 """ # xrange的内部实现原理 def myXrange(n): start = 0 while True: if start > n: return yield start start += 1 # ===================== # 创建迭代器 obj = myXrange(5) n1 = obj.__next__() n2 = obj.__next__() n3 = obj.__next__() n4 = obj.__next__() n5 = obj.__next__() n6 = obj.__next__() print(n1, n2, n3, n4, n5, n6) # 1 2 3 4 5
- 关键词
- 迭代器 iterator
- 关键词:iter
从前往后一个一个去访问的能力
- 关键词:iter
网友评论