《Python基础教程》代码不兼容,不知道为什么怎么解决,求大神解答。
发布网友
发布时间:2022-05-29 20:56
我来回答
共3个回答
热心网友
时间:2023-11-25 23:34
《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)这样了
热心网友
时间:2023-11-25 23:34
"ti"是一个 'TestIterator' 对象,是不能变成一个列表的
热心网友
时间:2023-11-25 23:35
在python3.0以后的版本中,next改为了双下划线的__next__。