1.定义:边循环边计算的机制,是一种特殊类型的迭代器,所以也会有__iter__和__next__方法,会在遍历过程中单独读取某一行的数据到内存
2.调用方式:
(1)for循环,for循环的本质就是调用了__iter__和__next__方法进行了迭代
(2)调用__next__()方法
(3)调用send方法
(4)数据类型强制转换,比如使用list()强制转换
3.两种实现方式:
(1)列表推导式外层的方括号改成圆括号
l1=[x*x for x in range(5)]
l2=(x*x for x in range(5))
print(type(l1)) #<class 'list'>
print(type(l2)) #<class 'generator'>
print(l1) #[0, 1, 4, 9, 16]
print(l2) #<generator object <genexpr> at 0x032EED48>
print(list(l2)) #[0, 1, 4, 9, 16]
print(list(l2)) #[]--这是由于前面已经取完了
(2)yield关键字
#yield关键字
def my_print1(n):
for i in range(n):