本博文源於python基礎,旨在實現分別用迭代器與生成器實現range功能,range功能用初始值start,步長step,stop是終止,其中終止是必須要的參數,其餘默認參數放上去。
實驗效果
迭代器效果
生成器效果
實驗原理
迭代器原理
確定好init初始化接受各個參數,step,start和stop。然後iter返回對象本身,next進行迭代,加上步長
生成器原理
每次跟stop值進行比較不斷生成即可
實驗代碼
生成器代碼
def myYield(stop, start=0, step=1):
while start + step < stop+step:
yield start
start += step
if __name__ == '__main__':
for i in myYield(start=-2,stop=12,step=3):
print(i)
迭代器代碼
class Myrange(object):
def __init__(self, stop, start=0, step=1):
self.start = start
self.stop = stop
self.step = step
print(start)
def __iter__(self):
self.cur_val = self.start
return self
def __next__(self):
self.cur_val += self.step
if self.cur_val < self.stop:
return self.cur_val
else:
raise StopIteration
for i in Myrange(start=-2, stop=13, step=2):
print(i)