1 def __iter__(self): 2 3 return iter(self._tests)
1、__iter__的返回值只要是个迭代器对象就可以,而迭代器对象最最最最重要的特征就是有__next__方法
1 class ProblemB(object): 2 def __init__(self): 3 # 初始化数列计数器 4 self.count = 0 5 self._length = 0 6 @property 7 def length(self): 8 return self._length 9 @length.setter 10 def length(self, value): 11 if not isinstance(value,int): 12 raise ValueError("length must be a integer!") 13 if value < 1 or value > 100: 14 raise ValueError("length must between 1 ~ 100!") 15 self._length = value 16 def __iter__(self): 17 return self 18 def __next__(self): 19 if self.count >= self.length: 20 raise StopIteration() 21 self.count = self.count + 1 22 self.value = self.count * 2 - 1 23 return self.value 24 def solution(sample): 25 solu_iter = ProblemB() 26 solu_iter.length = sample 27 sum = 0 28 for i in solu_iter: 29 sum += i 30 return sum
31 print (solution(10)
[转]迭代器(Iterator)和可迭代对象(Iterable)
原文:https://www.cnblogs.com/zxqqlove/p/12994619.html