发布时间:2019-09-26 07:23:24编辑:auto阅读(1778)
迭代器协议:
迭代器协议,是指对象(实例)能够使用next函数获取下一项数据,在没有下一项数据之前触发一个StopIteration异常来终止迭代
next(it) 对应__next__(self)方法
iter(obj) 对应__iter__(self)方法,通常返回一个可迭代对象
class odd:
def __init__(self,begin,end):
self.beg = begin
self.end = end
self.cur = begin #数据的当前位置
def __next__(self):
"""print("next被调用")"""
if self.cur >= self.end:
raise StopIteration
#此判断获取一个奇数,
if self.cur % 2 == 0:
self.cur += 1
r = self.cur
self.cur += 1 #步长
return r
def __iter__(self):
"""__iter__被调用,返回自己作为迭代器,每次返回一个可迭代对象,调用一次__iter__"""
self.cur = self.beg
return self
o = odd(5,10)
for x in o:
print(x)
print([x for x in o])
上一篇: python3——字符串基础
下一篇: Python3 redis集群连接 (
47756
46264
37145
34652
29241
25899
24769
19873
19435
17928
5725°
6330°
5847°
5898°
7000°
5836°
5856°
6370°
6326°
7691°