Iterable: 表示可迭代对象, 用于获取迭代器(实现__iter__函数来返回迭代器)
Iterator: 表示迭代器,用于遍历元素(通过__next__函数),迭代器也是可迭代对象
from collections.abc import Iterable, Iterator my_list = [1, 2, 3] my_iterator = iter(my_list) print(type(my_iterator)) # <class 'list_iterator'> print(isinstance(my_list, Iterable), isinstance(my_list, Iterator)) #True False print(isinstance(my_iterator, Iterable), isinstance(my_iterator, Iterator)) #True True print(next(my_iterator)) # 1 print(next(my_iterator)) # 2 print(next(my_iterator)) # 3 # print(next(my_iterator)) # 没有更多元素了, 会抛异常: StopIteration
*+迭代器:表示展开迭代器
my_list = [1, 2, 3] my_iterator = iter(my_list) print(*my_iterator) # 1 2 3
参考
Python中可迭代对象、迭代器以及iter()函数的两个用法详解 - 知乎 (zhihu.com)