老师我想问一下,您的那个例子,
def middle(key):
while True:
final_result[key] = yield from sales_sum(key)
print(key + '销量统计完成',final_result)
这个middle函数为什么要加while True呢?
我试了,如果不加while True,在main()方法里第二次m.send(None)时,就会抛出StopIteration
但是如果我不在middle函数里加while True,我也可以这么写,我catch住第二个send(None)就能继续执行
def main():
data_sets = {
‘bobby牌面膜’:[1200, 1500, 3000],
‘bobby牌手机’:[28,55,98,108],
‘bobby牌大衣’:[280,560,778,70]
}
for key, data_set in data_sets.items():
print('start key:', key)
m = middle(key)
m.send(None)
for value in data_set:
m.send(value)
try:
m.send(None)
except StopIteration as e:
pass
print('final_result:', final_result)
我想问一下这个为什么sales_sum退出的时候会往调用main()方法里抛一个StopIteration,但您在中继函数里加个while True就不抛了