Python yield生成器和return對比代碼實例
更新時間:2020年04月20日 15:59:38 作者:小陸同學
這篇文章主要介紹了Python yield生成器和return對比代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
迭代是Python最強大的功能之一,是訪問集合元素的一種方式。
迭代器是一個可以記住遍歷的位置的對象。
迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會后退。
迭代器有兩個基本的方法:iter() 和 next()。
生成器是特殊的迭代器
def gen_yield():
for i in range(1,10):
for j in range(1,10):
yield i+j
# return i+j
if __name__ == '__main__':
aa = gen_yield()
print(aa.__next__())
print(aa.__next__())
print(aa.__next__())
print(aa.__next__())
print(aa.__next__())
print(aa.__next__())
yield和return都有返回值的作用,但不同的是,yield會記住當前迭代的位置,而return不會
如果還是不能很好的理解上面兩者的區(qū)別,看如下代碼
def test_yield():
for i in [1,2,3]:
yield i
def test_return():
for i in [1,2,4]:
return i
if __name__ == '__main__':
test_yield_obj = test_yield()
print('這里測試yield')
print(test_yield_obj.__next__()) # 1
print(test_yield_obj.__next__()) # 2
print(test_yield_obj.__next__()) # 3
print('這里是測試return')
print(test_return()) # 1
print(test_return()) # 1
print(test_return()) # 1
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

