《Python基础教程》代码不兼容,不知道为什么怎么解决,求大神解答。

2025-02-27 20:59:42
推荐回答(3个)
回答1:

《Python基础教程》中案例代码是完全依据Python2.x版写的。

所以要想正常运行最好用Python2.7的环境。

要在Python3.X下运行代码要改一下。

class TestIterator:
    value = 0
    def __next__(self):
        self.value += 1
        if self.value > 10:
            raise StopIteration
        return self.value
    def __iter__(self):
        return self

ti =TestIterator()

print(next(ti))
print(next(ti))
print(list(ti))

因为Python3中对迭代器协议有些改变
next()方法改名字为__next__()
调用方式也只能用next(ti)这样了

回答2:

"ti"是一个 'TestIterator' 对象,是不能变成一个列表的

回答3:

在python3.0以后的版本中,next改为了双下划线的__next__。