【发布时间】:2018-10-03 23:36:17
【问题描述】:
class OddNum():
def __next__(x):
if x%2 != 0:
print x
def main():
a = iter(OddNum(1))
while next(a)<100:
try:
print(next(a))
except StopIteration:
break
main()
上面是我正在使用的代码。给出了主要代码,所以我没有写。这应该做的就是打印 1-100 的奇数。
我得到的错误是:
Traceback (most recent call last):
line 36, in <module>
main()
line 29, in main
a = iter(OddNum(1))
TypeError: this constructor takes no arguments
【问题讨论】:
-
这里似乎有问题,您调用
next两次并丢弃所有其他奇数。为什么要这样做? -
请发布您尝试过的代码以及您遇到的错误。
-
主要是给的我没写所以我不知道
-
我发布了我尝试过的内容和错误
-
嗯,你有没有考虑为你的类写一个构造函数——一个接受参数的构造函数——这样你就不会得到那个错误?
标签: python python-2.7 iterator iteration next