yield實現狀態保存

import time
def func():
    print(123)
    sum = 0
    print(6666)
    yield sum
    print(7777)
    yield sum
    print(8888)
    yield sum

def fff():
    g = func()
    print('這是在ffff函數中')
    print(next(g))
    time.sleep(1)
    print('這是在ffff函數中')
    print(next(g))
    time.sleep(1)
    print('這是在ffff函數中')
    print(next(g))

fff()


# g = func()            #此時不會執行func函數,必須遇到下面代碼中的next(g)纔會執行函數,而且每個next(g)只循環一次後,程序將停在while 1:以前,等待下一次next(g)
# print('abc')
# time.sleep(10)
# print(next(g))
# time.sleep(10)
# fff()                    #在fff函數中使用next(g)使得程序fff()和func()交替執行
# time.sleep(10)
# print(next(g))
相關文章
相關標籤/搜索