不久前面试时候面试官提起了python的这两个关键字,问我了解过没有,我当时没能答上来,接触python时间太短,虽然只是随口一问,我还是随后查资料。
yield
找到了一篇关于yield的神文:(译)Python关键字yield的解释(stackoverflow)
这篇文章翻译自 stackoverflow 上一篇帖子,介绍的非常详细了,yield返回的就是生成器,“生成器是可以迭代的,但是你 只可以读取它一次 ,因为它并不把所有的值放在内存中,它是实时地生成数据。”
我写的是我读后总结,所以有不够详尽的地方,建议直接阅读上面的文章。
for … in … 是一个迭代器,他可以遍历迭代的内容。
index = (x+x for x in range(3)) # 这是一个生成器
for i in range(index):
print(i)
for i in range(index): # 执行程序,你会发现,第二次根本没有打印出数据
p