python_理解篇_yield的個人學(xué)習(xí)

大家好,我是金魚座,一個走在測試領(lǐng)域這片藍(lán)海中, 蹉跎前行的技術(shù)渣渣,唯有一直走下去,也許能改變點什么,加油!

yield是作為一個生成器的重要標(biāo)志,在后面的很多地方都或多或少都會用到,特別是如果要學(xué)習(xí)一些框架代碼的時候,由于個人能力問題,對這類的東西一直一知半解,所以今天就把自己的了解做總結(jié)下

yield常見的使用法

# 第一種普通用法
def yield_1():
    print("yield_1 start")
    yield
    print("yield_1:{}".format(c))

# 帶有返回值的用法
def yield_2(value):
    print("yield_2 start")
    yield  value
    print("yield_2:{}".format(c))

# 可以接收值的用法 
def yield_3(value):
    print("yield_3 start")
    c = yield  value
    print("yield_3:{}".format(c))
  1. 在函數(shù)中增加yield,即可完成生成器的定義,這是絕對的,如上述代碼,
  2. yield中即可和普通的return一樣進(jìn)行值返回,也可以像方法參數(shù)一樣接收值的傳遞

如何執(zhí)行?
對于一個生成器必須使用next和send對其進(jìn)行喚醒操作,否則是不會自動進(jìn)入到方法中執(zhí)行

y  = func()
y.send(None)  or  next(y)

如何傳值?

y.send(value)   該方法會將value值傳給yield_3中的 c, c會自動接收

如何返回值

g = next(y) or y.send(value2) 該方式可以讓g獲取y中的yield value中的value的值

目前來看最基本的三個方式就是上述三種,至于是否有其他的,暫時也沒有研究,先弄明白這些吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容