讀者
查看需要有一定的基礎(chǔ)python,概念部分建議 閱讀經(jīng)典書籍: 百萬的python 或者w3c school 或者 菜鳥教程
系列
這是一個(gè)系列,如遇到不明白的部分,可以回看前面的文章
功能
通過 gen gen 的使用權(quán),即在 subgen() 時(shí),subgen 的使用權(quán),把的價(jià)值傳遞給 gen 的使用方,可以直接控制生成方的調(diào)用,生成 subgen 的使用權(quán)。亞根終止。
重復(fù):如果yield from 后面是str list tple set map range,直接next()
例子說明
yield from的執(zhí)行流程,并制作了一個(gè)模擬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文章
7630瀏覽量
140161 -
python
+關(guān)注
關(guān)注
56文章
4823瀏覽量
86113
發(fā)布評(píng)論請(qǐng)先 登錄
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)系是什么
EtherCAT運(yùn)動(dòng)控制器上位機(jī)之Python+Qt(一):鏈接與單軸運(yùn)動(dòng)

評(píng)論