讀者
查看需要有一定的基礎(chǔ)python,概念部分建議 閱讀經(jīng)典書籍: 百萬的python 或者w3c school 或者 菜鳥教程
系列
這是一個系列,如遇到不明白的部分,可以回看前面的文章
功能
通過 gen gen 的使用權(quán),即在 subgen() 時,subgen 的使用權(quán),把的價(jià)值傳遞給 gen 的使用方,可以直接控制生成方的調(diào)用,生成 subgen 的使用權(quán)。亞根終止。
重復(fù):如果yield from 后面是str list tple set map range,直接next()
例子說明
yield from的執(zhí)行流程,并制作了一個模擬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__}接收 ')
gs = [gen(), gen_fake()]
for g in gs:
print_value(g, None)
print_value(g, 2)
'''
結(jié)果:
gen接收 11
gen返回值 2
gen_fake接收 11
gen_fake返回值 2
'''
審核編輯:劉清
-
C語言
+關(guān)注
關(guān)注
180文章
7628瀏覽量
139832 -
python
+關(guān)注
關(guān)注
56文章
4822瀏覽量
85896
發(fā)布評論請先 登錄
python入門圣經(jīng)-高清電子書(建議下載)
Python中的迭代器與生成器
使用Python實(shí)現(xiàn)xgboost教程
快手“可靈AI”軟件著作權(quán)獲批
如何使用Python構(gòu)建LSTM神經(jīng)網(wǎng)絡(luò)模型
如何使用 Llama 3 進(jìn)行文本生成
三行代碼完成生成式AI部署

pytorch和python的關(guān)系是什么
Python建模算法與應(yīng)用
Python在AI中的應(yīng)用實(shí)例
如何實(shí)現(xiàn)Python復(fù)制文件操作
opencv-python和opencv一樣嗎
用pycharm進(jìn)行python爬蟲的步驟
云知聲說話人識別引擎獲得HUAWEI COMPATIBLE證書及認(rèn)證徽標(biāo)的使用權(quán)

評論