Python yield 用法
生活随笔
收集整理的這篇文章主要介紹了
Python yield 用法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
一、環(huán)境
python 3.6
二、yield 說(shuō)明
yield 是一個(gè)生成器,可以用于迭代。也是一個(gè)類(lèi)似 return 的關(guān)鍵字,迭代一次遇到y(tǒng)ield時(shí)就返回yield后面(右邊)的值。
重點(diǎn)是:下一次迭代時(shí),從上一次迭代遇到的yield后面的代碼(下一行)開(kāi)始執(zhí)行。
三、代碼實(shí)戰(zhàn)
# -*- coding: utf-8 -*-## for 循環(huán)調(diào)用 ## 第一次循環(huán) n = 2, i = 0; yield i*2 = 0 打印 for i = 0 ,停在這個(gè)位置 ## 第二次循環(huán) 執(zhí)行下一個(gè)語(yǔ)句執(zhí)行,打印 after i = 0 ; i= 1 滿足循環(huán)條件 yield i*=2 ,打印 for i = 2 ## 第三次循環(huán) 執(zhí)行下一個(gè)語(yǔ)句執(zhí)行,打印 after i = 1; i= 2 不滿足循環(huán)條件 退出 。打印 othersdef yield_kim(n): # 0 1for i in range(n):yield i*2 # yield就類(lèi)似 return 返回一個(gè)值,并且記住這個(gè)返回的位置,下次迭代就從這個(gè)位置后開(kāi)始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-------------->## 普通調(diào)用---------------------- def yield_kim2(n):print("n =",n) a = yield n*2print("a = ",a)k = yield_kim2(2) k2 = next(k) # 執(zhí)行后 yield n*2 表達(dá)式的值為 4 ,a 還未賦值#輸出 n = 2 View Code四、結(jié)果截圖
?
轉(zhuǎn)載于:https://www.cnblogs.com/kimbo/p/9454211.html
總結(jié)
以上是生活随笔為你收集整理的Python yield 用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于数据库隔离级别
- 下一篇: Python -- 连接数据库SqlSe