python yield 和 return 对比分析
相同點(diǎn):都是返回函數(shù)執(zhí)行的結(jié)果
不同點(diǎn):return 在返回結(jié)果后結(jié)束函數(shù)的運(yùn)行,而yield 則是讓函數(shù)變成一個(gè)生成器,生成器每次產(chǎn)生一個(gè)值(yield語句),函數(shù)被凍結(jié),被喚醒后再產(chǎn)生一個(gè)值
例子:求一組數(shù)的平方值
return 實(shí)現(xiàn):
def squre(n):
? ? ls = [i*i for i in range(n)]
? ? return ls
for i in squre(5):
? ? print(i, end=' ?')
結(jié)果為:
0 1 4 9 16
yield 實(shí)現(xiàn):
def squre(n):
for i in range(n):
yield i*i
for i in squre(5):
print(i, end=' ')
結(jié)果為:
0 1 4 9 16
yield 生成器相比 return一次返回所有結(jié)果的優(yōu)勢(shì):
(1)反應(yīng)更迅速
(2)更節(jié)省空間
(3)使用更靈活
---------------------
作者:凍梨不是梨
來源:CSDN
原文:https://blog.csdn.net/qq_34246164/article/details/80960363
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!
總結(jié)
以上是生活随笔為你收集整理的python yield 和 return 对比分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习--not语句
- 下一篇: Python os.getcwd() 方