Python yield 用法

 

1、環境

  python 3.6python

2、yield 說明

  yield 是一個生成器,能夠用於迭代。也是一個相似 return 的關鍵字,迭代一次遇到yield時就返回yield後面(右邊)的值。ide

重點是:下一次迭代時,從上一次迭代遇到的yield後面的代碼(下一行)開始執行。spa

3、代碼實戰

# -*- coding: utf-8 -*-

## for 循環調用
## 第一次循環 n = 2, i = 0; yield i*2 = 0 打印 for i = 0 ,停在這個位置
## 第二次循環 執行下一個語句執行,打印 after i = 0 ; i= 1 知足循環條件 yield i*=2 ,打印 for i = 2
## 第三次循環 執行下一個語句執行,打印 after i = 1; i= 2 不知足循環條件 退出 。打印 others

def yield_kim(n): # 0 1
    for i in range(n):
        yield i*2  # yield就相似 return 返回一個值,而且記住這個返回的位置,下次迭代就從這個位置後開始
        print("after i=",i)
    print("<--------------Others-------------->")

## for cycle
for i in yield_kim(2): 
    print("for i=",i)
    
#第一次輸出  for i = 0
#第二次輸出  after i= 0 ; for i= 2
#第三次輸出  after i= 1 ; <--------------Others-------------->

    
## 普通調用----------------------
def yield_kim2(n):
    print("n =",n) 
    a = yield n*2
    print("a = ",a)
    
k = yield_kim2(2)
k2 = next(k)   # 執行後 yield n*2 表達式的值爲 4 ,a 還未賦值

#輸出 n = 2
View Code

4、結果截圖

相關文章
相關標籤/搜索