python之Iterator、Iterable
class Vector: #类似于Iterable实现类
def __init__(self,data,choice):
self.data=data
self.choice=choice
def __iter__(self): #实现后,取Iterator
if self.choice==0:
return Vector_Iterator0(self.data)
else:
return Vector_Iterator1(self.data)
class Vector_Iterator0: #Iterator实现类
def __init__(self,data):
self.data=data
self.index=-2
def __next__(self): #遍历奇数位
if self.index<len(self.data)-2:
self.index = self.index + 2
r=self.data[self.index]
return r
else:
raise StopIteration
class Vector_Iterator1: #Iterator实现类
def __init__(self,data):
self.data=data
self.index=-1
def __next__(self): #遍历偶数位
if self.index<len(self.data)-2:
self.index = self.index + 2
r=self.data[self.index]
return r
else:
raise StopIteration
v=Vector([10,20,30,40,50,60,70,80],0)
for i in v:
print(i)
运行结果:
0:遍历奇数
10
30
50
70
1:遍历偶数
20
40
60
80

浙公网安备 33010602011771号