yield 2 ?表示的是筛选掉倍数为2的递增无限序列?
Topic source it = _odd_iter() # 初始序列
这一句构造的初始序列,第一个数是3,本来就没有2,4,6,8……仔细看看原文。所以第一句要yield 2
it = filter(_not_divisible(n), it) # 构造新序列
这一句才是删除序列中能被n整除的数。比如,第一次删除的是能被3整除的数。
- 1
it = _odd_iter() # 初始序列
这一句构造的初始序列,第一个数是3,本来就没有2,4,6,8……仔细看看原文。所以第一句要yield 2
it = filter(_not_divisible(n), it) # 构造新序列
这一句才是删除序列中能被n整除的数。比如,第一次删除的是能被3整除的数。
毛毛都嘟
def primes(): yield 2 it = _odd_iter() # 初始序列 while True: n = next(it) # 返回序列的第一个数 yield n it = filter(_not_divisible(n), it) # 构造新序列
看不懂,求大神解释,yield 2返回第一个素数2,那么4,6,8,10,等递增序列是怎么样被被筛选掉的呢。