在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/數(shù)據(jù)分析&挖掘  Python/ 表達(dá)式賦值沒(méi)返回值還是為none

表達(dá)式賦值沒(méi)返回值還是為none

#!/usr/bin/python 
print("Hello, World!");
def h():
        print ("hello")
        m = yield 5
        print ("m:", m)
        d = yield 12
        print ("d:",d )
        print ("world")
c = h()
c.__next__()  # hello  # 5
c.__next__()  # m: None  # 12
c.__next__()

如上面提到的,調(diào)用next方法時(shí),

  1. =(yield 5)

?右邊返回 5,卻沒(méi)有賦值給 m,是因?yàn)?,在python中不支持表達(dá)式賦值嗎?還是返回none
?
?

回答
編輯回答
我以為

如下為生成器的 next() 函數(shù)的描述

開(kāi)始生成器函數(shù)的執(zhí)行或者在最后一次執(zhí)行的yield表達(dá)式處恢復(fù)執(zhí)行。當(dāng)生成器函數(shù)使用next()方法恢復(fù)執(zhí)行時(shí),當(dāng)前的yield表達(dá)式始終None。然后執(zhí)行繼續(xù)行進(jìn)到下一個(gè)yield表達(dá)式,在那里生成器被再次掛起并返回expression_list的值給next()的調(diào)用者。

即你在第一次 yield 5 后,,這個(gè)時(shí)候 m= 這個(gè)賦值操作根本沒(méi)有執(zhí)行,然后,第二次使用 next 時(shí), 當(dāng)前的 yield 表達(dá)式為 None,即 m=None

2017年9月11日 12:07