yield
yield是用於生成器。什么是生成器,你可以通俗的認為,在一個函數中,使用了yield來代替return的位置的函數,就是生成器。它不同於函數的使用方法是:函數使用return來進行返回值,每調用一次,返回一個新加工好的數據返回給你;yield不同,它會在調用生成器的時候,把數據生成object,然后當你需要用的時候,要用next()方法來取,同時不可逆。你可以通俗的叫它"輪轉容器",可用現實的一種實物來理解:水車,先yield來裝入數據、產出generator object、使用next()來釋放;好比水車轉動后,車輪上的水槽裝入水,隨着輪子轉動,被轉到下面的水槽就能將水送入水道中流入田里。
def func3():
for i in range(1,5):
yield i#裝入
gob = func3()#generator 類型
print next(gob)#1 釋放的第一個裝入的數據,(先入先出)
print next(gob)#2
print next(gob)#3
print next(gob)#4
print next(gob)#報錯
復制代碼
return
這個大家都知道了,一句話,return既可以終止函數的執行,也可以返回函數加工處理好的數據,只是這個數據需要一個載體來進行保存,通常是變量。非條件判斷的時候,只要遇見return,函數就結束執行。