Python 2.6 在python中使用_next__方法时出现的问题

Python 2.6 在python中使用_next__方法时出现的问题,python-2.6,Python 2.6,我刚刚开始学习python,正在阅读关于类的内容 这是我为一个简单的iterable类编写的代码: class maths: def __init__(self,x): self.a=x def __iter__(self): self.b=0 return self def next(self): if self.b <= se

我刚刚开始学习python,正在阅读关于类的内容

这是我为一个简单的iterable类编写的代码:

class maths:
          def __init__(self,x):
             self.a=x
          def __iter__(self):
             self.b=0
             return self
          def next(self):
            if self.b <= self.a:
               self.b = self.b+1
               return self.b-1
            else:
               raise StopIteration


x=maths(5)
  for l in x:
       print l
有人能解释一下这种行为吗。我在MarkPilgrim的《深入python 3》一书中看到了一个例子,该书使用了
\uuuuuuuuuuuuuuuuuuuuuuu
方法。甚至这个例子也没有在我的解释器上运行。
谢谢你抽出时间来帮助我

您使用的是Python2.x,它一直使用
.next()
,现在仍然如此-只有Python3将该方法重命名为
.next()
。Python 2和3不兼容。如果您正在阅读一本3.x版的书,请自己使用Python3.x,反之亦然


对于Python 2.x,您可以将
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuo()
更改为
相关:更新“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,并实现一个只调用self的
next(self)
方法。这样,当版本实际切换时,您就可以知道了,因为它们是同一个函数,您最好简单地分配它们,而不是让一个函数调用另一个函数
next=\uuuu next\uuu
将使其2和3兼容。
Traceback (most recent call last):
  File "class.py", line 20, in <module>
    for l in x:
TypeError: instance has no next() method