【发布时间】:2023-04-01 20:00:02
【问题描述】:
我的目标是编写一个类并仅使用__iter__
和next
方法来查找数字的除数。这是我写的:
class Divisors(object):
def __init__(self, integer):
self.integer = integer
def __iter__(self):
self.divisor = 1
return self
def next(self):
div = 0
if self.divisor >= self.integer:
raise StopIteration
else:
if self.integer % self.divisor == 0:
div = self.divisor
self.divisor += 1
return div
当我检查时:
for i in Divisors(6):
print i
我明白了
1
2
3
0
0
而不是1 2 3 6
但我不确定是否应该使用 print 代替上面使用的 div。关于我在这里做错了什么的任何提示?
【问题讨论】:
-
与您的问题无关,但
Divisors
真的 不应该是一个类。作为一个函数,它会更有意义。 -
为什么 4 是 6 的除数?
-
阅读ericlippert.com/2014/03/05/how-to-debug-small-programs 了解调试代码的一些技巧。
-
@chrisz 错字抱歉,已编辑。谢谢你的评论。
-
@Aran-Fey 谢谢,但实际上重点是我明天有一个测试,它会涵盖类和方法,所以我试图想一些我可以练习的简单示例。跨度>
标签:
python
python-2.7
loops
methods
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python上的简单迭代 - Python技术站