讀者
查看需要有一定的基礎python,概念部分建議 閱讀經典書籍: 百萬的python 或者w3c school 或者 菜鳥教程
系列
這是一個系列,如遇到不明白的部分,可以回看前面的文章
功能
通過 gen gen 的使用權,即在 subgen() 時,subgen 的使用權,把的價值傳遞給 gen 的使用方,可以直接控制生成方的調用,生成 subgen 的使用權。亞根終止。
重復:如果yield from 后面是str list tple set map range,直接next()
例子說明
yield from的執行流程,并制作了一個模擬fake_yield_from,
源是c語言所寫,可以自己研究
import inspect
def subgen():
res = yield 11
return res
def gen():
res = yield from subgen()
return res
def fake_yield_from(f):
# 模擬yield from的功能
result = None
if inspect.isgenerator(f):
try:
result = f.send(None)
except StopIteration as e:
result = e.value
else:
result = next(iter(f))
return result
def gen_fake():
res = yield fake_yield_from(subgen())
return res
def print_value(f, args):
try:
b = f.send(args)
except StopIteration as e:
print(f'{f.__name__}返回值 {e.value}')
return e.value
else:
print(f'{f.__name__}接收 {b}')
gs = [gen(), gen_fake()]
for g in gs:
print_value(g, None)
print_value(g, 2)
'''
結果:
gen接收 11
gen返回值 2
gen_fake接收 11
gen_fake返回值 2
'''
審核編輯:劉清
-
C語言
+關注
關注
183文章
7644瀏覽量
145596 -
python
+關注
關注
57文章
4876瀏覽量
90030
發布評論請先 登錄
【iotauth 】 IOT 鑒權庫的技術實踐
探索RC2121xA評估板:PCIe時鐘生成的理想之選
沒有專利的opencv-python 版本
FreeRTOS 空閑任務
Python調用API教程
語法糾錯和testbench的自動生成
淘寶商品詳情接口(item_get)企業級全解析:參數配置、簽名機制與 Python 代碼實戰
termux調試python猜數字游戲
termux如何搭建python游戲
python app不能運行怎么解決?
linux虛擬環境中調用Linux 版matlab編譯的python庫時出錯
python入門圣經-高清電子書(建議下載)
?如何在虛擬環境中使用 Python,提升你的開發體驗~
零基礎入門:如何在樹莓派上編寫和運行Python程序?
python之生成subgen的使用權
評論