1. 程式人生 > >Python學習17--生成器3之send函式

Python學習17--生成器3之send函式

def fun():              #執行順序    1
    print("ok")         #                   4
    count = yield 1     #                   5第一次執行本行語句時,仍然會返回1值     8
    print("NO")         #
    yield 2             #                                                      9

g = fun()               #           2
a = next(g)             #           3本行可改為:g.send(None):由於本句為生成器伊始階段,不知道給誰賦值,所以使用None
print(a)                #                   6
b = g.send("略略略")     #                   7 執行該語句時,直接跳回第3行語句,為count賦值
print(b)                #                                                      10
print(a)
#總結:
#   send函式的作用,為yield之前存在變數時,修改變數的值,不會改變原有yield的返回值