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是不是迭代器