我按照Fluent Python一书的Chapter 14 Control Flow,遇到以下代码的问题:class ArithmeticProgression: def __init__(self, begin, step, end=None): self.begin = begin self.step = step self.end = end def __iter__(self): result = type(self.begin + self.step)(self.begin) forever = self.end is None index = 0 while forever or result < self.end: yield result index = + 1 result = self.begin + self.step * index当我根据书进行测试时:In [220]: ap = ArithmeticProgression(1, 1, 5)In [221]: apOut[221]: <__main__.ArithmeticProgression at 0x1098b2160>In [222]: list(ap)#it run endless not return any result#I should Ctrl+C to break it mandatory我在 master · fluentpython/example-code 处逐行使用example-code/aritprog_v1.py的源代码检查我的代码,但没有发现任何问题。
1 回答

牛魔王的故事
TA贡献1830条经验 获得超3个赞
index = + 1
应该
index += 1
这将在index
每次迭代中添加一个。按原样,这是index = +1
或index = 1
。所以result
循环之间的值从不改变。
添加回答
举报
0/150
提交
取消