一个新手对迭代器的理解
# part 02class MyRev:
def __init__(self,seq=''):
self.seq = seq
self.len = len(seq)
def __iter__(self):
return self
def __next__(self):
self.len = self.len - 1
if self.len <0 : # !!!注意迭代器一定要设置一个结束的条件
raise StopIteration # !!!不然就会无限循环下去
self.byte = self.seq
return self.byte # 假如没有self.len小于0的条件,
# __next__就会一直返回【None】
# 而 __next__ 函数的返回值就是 【i】
myRev = MyRev('LIUNB!!!')
print(myRev.len)
print(myRev.seq)
for i in myRev: # ???可能for语句让__next__函数进入无限循环,
print(i,end='') # ???只有达到__next__函数停止运行的条件才能终止循环
不知道我这样理解有没有错? {:10_266:} arr =
res = iter(arr)
print(res.__next__())
print(res.__next__())
print(res.__next__())
print(res.__next__())
print(res.__next__())1
2
3
4
StopIteration 迭代器就是指一个一次性的可迭代对象
页:
[1]