功能
__next__()函数定义迭代对象某变量。
通过使用__next__()函数定义对象的迭代,可以更加灵活地控制迭代过程,甚至实现对无穷序列的迭代。同时,还可以结合其他Python内置的迭代功能(如生成器、yield关键字等)来实现更复杂的迭代逻辑。
实例
class Handler():
def __init__(self, start):
self.currentURI = '' # 当前URI
self.toVisit = [] # 访问过的
self.toVisit.append(start) # 添加URL
def __next__(self):
print("获取前: ", self.toVisit)
self.currentURI = self.toVisit[0] # 访问
self.toVisit.remove(self.currentURI) # 完成后
return self.currentURI
def noinit(self):
if self.toVisit: # 如果还有URL
return True # +1
return False # -1
def add_url(self, url):
self.toVisit.append(url)
if __name__ == "__main__":
handler = Handler("http://0.com")
handler.add_url("http://1.com")
handler.add_url("http://2.com")
while handler.noinit():
print(next(handler))
print("获取后:", handler.toVisit)