ArithmeticProgression 无限运行

我按照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]: ap

Out[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的源代码检查我的代码,

但没有发现任何问题。


幕布斯7119047
浏览 127回答 1
1回答

牛魔王的故事

index&nbsp;=&nbsp;+&nbsp;1应该index&nbsp;+=&nbsp;1这将在index每次迭代中添加一个。按原样,这是index = +1或index = 1。所以result循环之间的值从不改变。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python