coroutine started") # yie..." /> python協程1:yield的使用 - iFuun
當前位置:
首頁 > 知識 > python協程1:yield的使用

python協程1:yield的使用

#! -*- coding: utf-8 -*- import inspect # 協程使用生成器函數定義:定義體中有yield關鍵字。 def simple_coroutine: print("-> coroutine started") # yield 在表達式中使用;如果協程只需要從客戶那裡接收數據,yield關鍵字右邊不需要加表達式(yield默認返回None) x = yield print("-> coroutine received:", x) my_coro = simple_coroutine my_coro # 和創建生成器的方式一樣,調用函數得到生成器對象。 # 協程處於 GEN_CREATED (等待開始狀態) print(inspect.getgeneratorstate(my_coro)) my_coro.send(None) # 首先要調用next函數,因為生成器還沒有啟動,沒有在yield語句處暫停,所以開始無法發送數據 # 發送 None 可以達到相同的效果 my_coro.send(None) next(my_coro) # 此時協程處於 GEN_SUSPENDED (在yield表達式處暫停) print(inspect.getgeneratorstate(my_coro)) # 調用這個方法後,協程定義體中的yield表達式會計算出42;現在協程會恢復,一直運行到下一個yield表達式,或者終止。 my_coro.send(42) print(inspect.getgeneratorstate(my_coro))

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

Azure經典門戶創建VM,如何設置使用靜態IP地址?
Mina 報文監聽器NioDatagramAcceptor一
Redis 集群搭建詳細指南
如何使用scala+spark讀寫hbase?
Grunt壓縮HTML和CSS

TAG:科技優家 |

您可能感興趣

Python中使用Type hinting 和 annotations
Python 標準庫之 collections 使用教程
windows下安裝python及第三方庫numpy、scipy、matplotlib終極版
Process-Forest-Window進程日誌分析工具;python版的BloodHound
Python 的 ChatOps 庫:Opsdroid 和 Errbot
Python模塊——contextlib和urllib
python的concat等用法
deep-learning-with-python-notebooks中文版
python小點dian兒:使用merge還是join
Python的進階:copy與deepcopy區別
Python 特殊函數(lambda,map,filter,reduce)
Mozilla的Python3使用情況
Python 標準庫精華: collections.Counter
python操作neo4j
Python中的 property特性
python wsgi 簡介
python的緩存庫:cacheout
使用python將excel轉為lua文件
Python中的 @property特性
在Python中使用Elasticsearch