通過實(shí)例簡單了解Python中yield的作用
這篇文章主要介紹了通過實(shí)例簡單了解Python中yield的作用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
介紹
我們有時候會發(fā)現(xiàn)代碼中return的地方,有用yield的,難道他們一樣嗎?其實(shí),yield與return看起來很像,但實(shí)際上完全不同。
使用
def test():
print("****start****")
while 1:
res = yield 1
print("res:", res)
t = test() # 函數(shù)中有yield關(guān)鍵字,所以函數(shù)并不會真的執(zhí)行,而是先得到一個生成器t
print(next(t)) # next讓函數(shù)開始執(zhí)行,打印start,然后把1返回給next(t),并把1打印出來,這時res還沒賦值
print("*"*10) # 打印十個*
print(next(t)) # 函數(shù)從res = yield開始執(zhí)行,但是1已經(jīng)被yield出去了,所以res實(shí)際上沒有值,就是None,然后while重新循環(huán),1被yield出去打印
# ****start****
# 1
# **********
# res:None
# 1
你繞出來了嗎?
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)復(fù)雜的事件驅(qū)動架構(gòu)
事件驅(qū)動架構(gòu)(Event-Driven?Architecture,?EDA)是一種軟件設(shè)計模式,它基于事件的產(chǎn)生、傳播和處理進(jìn)行系統(tǒng)的構(gòu)建,下面我們來看看如何在?Python?中實(shí)現(xiàn)復(fù)雜的事件驅(qū)動架構(gòu)吧2024-12-12
python使用fork實(shí)現(xiàn)守護(hù)進(jìn)程的方法
守護(hù)進(jìn)程(Daemon)也稱為精靈進(jìn)程是一種生存期較長的一種進(jìn)程。它們獨(dú)立于控制終端并且周期性的執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。他們常常在系統(tǒng)引導(dǎo)裝入時啟動,在系統(tǒng)關(guān)閉時終止。2017-11-11
python使用flask與js進(jìn)行前后臺交互的例子
今天小編就為大家分享一篇python使用flask與js進(jìn)行前后臺交互的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
python中str內(nèi)置函數(shù)用法總結(jié)
在本篇文章里小編給大家整理了一篇關(guān)于python中str內(nèi)置函數(shù)用法總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-12-12
Pycharm中SQL語句提示SQL Dialect is Not Config
這篇文章主要介紹了Pycharm中SQL語句提示SQL Dialect is Not Configured的解決方案,具有很好的參考價值,希望對大家有所幫助。2022-07-07
python中Tkinter 窗口之輸入框和文本框的實(shí)現(xiàn)
這篇文章主要介紹了python中Tkinter 窗口之輸入框和文本框的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

