LIUQOQ 发表于 2021-9-5 22:10:45

一个新手对迭代器的理解

# part 02
class 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__函数停止运行的条件才能终止循环         

不知道我这样理解有没有错?

阿柴想睡觉了 发表于 2021-9-7 20:05:03

{:10_266:}

傻眼貓咪 发表于 2021-9-7 20:19:14

arr =
res = iter(arr)

print(res.__next__())
print(res.__next__())
print(res.__next__())
print(res.__next__())
print(res.__next__())1
2
3
4
StopIteration

python爱好者. 发表于 2022-1-16 07:06:15

迭代器就是指一个一次性的可迭代对象
页: [1]
查看完整版本: 一个新手对迭代器的理解