我试图理解素数迭代器是如何工作的,代码取自一次讲座。
我搜索了count(),但只找到了列表、对象的方法,我只是不明白self._candidates = count(1)
行是如何工作的,它意味着什么。
我们要数到1的物体在哪里?它的进一步使用也很混乱。
我主要用java编写代码,尽管我知道基本的python。
代码如下:
class Primes(object):
def __init__(self):
self._candidates = count(1)
def __iter__(self): return self
def next(self):
item = self._candidates.next()
if item > 1:
self._candidates = FilterMultiplies(self._candidates, item)
return item
class FilterMultiplies(object):def __init__(self, seq, n):
self._seq = iter(seq)
self._n = n
def __iter__(self): return self
def next(self):
item = self._seq.next()
while item % self._n == 0:
item = self._seq.next()
return item
可能这是^{} ,一条线
列表中缺少。你知道吗
Python中的Generators与Java中的
Iterator
相当。调用count(1)
返回一个从1开始向上计数的生成器:请注意,
counter.next()
只是python2。为了与python2和python3兼容,请改用next(counter)
。你知道吗相关问题 更多 >
编程相关推荐