云上的天涯

导航

pyhon的yileld的一点笔记

yield感觉很神秘,感觉也不好理解,学习pyhon最后终归是要学习这个东西,研究了一段时间,把自己的笔记写下来

说简单点就是遇到yield就停止往下执行代码,也包括不执行yield这条语句,然后返回结果后,继续从yield这条语句开始执行,这里也包括执行了yield这条语句,真正的执行了,上面的返回只是单纯的跳出执行,返回没有执行yield,然后再遇到yield再返回,然后再回来执行,如此往复

import time
def f():
    print("OK1")
    time.sleep(3)
    count = yield 5
    print("aaa")

    print(count)
    print("ok2")
    yield 67

c = f()
next(c)
#c.send(999)

执行结果如下

D:\python\venv\Scripts\python.exe D:/python/xiecheng2.py
OK1

Process finished with exit code 0

import time
def f():
    print("OK1")
    time.sleep(3)
    count = yield 5
    print("aaa")

    print(count)
    print("ok2")
    yield 67

c = f()
next(c)
c.send(999)

执行结果如下

D:\python\venv\Scripts\python.exe D:/python/xiecheng2.py
OK1
aaa
999
ok2

Process finished with exit code 0

可见count变成了999

posted on 2018-11-08 17:58  云上的天涯  阅读(197)  评论(0编辑  收藏  举报