list = [1,2,3] it = list.__iter__() #获取迭代器 while True: try: el = it.__init__() #获取下一个元素 print(el) except StopIteration: #处理错误 break
上面是for循环的底层原理python
for el in list: print(el)
#非官方检查方案 lst = [1,2,3,4,5] it = lst.__iter__() print("__iter__" in dir(it)) print("__next__" in dir(it))
# 官方检查方案 form collections import Iterable #可迭代对象 from collections import Iterator #迭代器 print(isinstance(lst, Iterable)) #判断lst是不是可迭代对象 print(isinstance(lst, Iterator)) #判断lst是不是迭代器