可迭代对象和迭代器的关系:
可迭代对象包括:数组、字典、字符串、自定义可迭代对象
可迭代对象内置了iter函数,代表了它的身份
可迭代对象通过iter函数返回它的迭代器
迭代器用过next方法不断进行迭代
from curses.ascii import BS
from json.tool import main
class BookShelf:
def __init__(self):
self.books = ['孙悟空','贝吉塔','龟仙人']
self.cur_index = -1
def __next__(self):
if self.cur_index == len(self.books) - 1:
raise StopIteration
self.cur_index += 1
return self.books[self.cur_index]
def __iter__(self) #证明了它的可迭代对象的身份 #它本身就是一个迭代器,返回它自己就可以了
return self
if __name__ == '__main__':
bs = BookShelf()
for i in bs:
print(i)