yield_from


final_result ={}


def sales_sum(pro_name):
    total =0
    nums =[]
    while True:
        x = yield
        print(pro_name+"销量:",x)
        if not x:
            break
        total += x
        nums.append(x)
    return total,nums



def middle(key):
    while 1:
        final_result[key] = yield from sales_sum(key)
        print(key + "销量统计完成!!")



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)  # 预激middle 协程
        for value in data_set:
            m.send(value) # 给协程传递每一组的值
        m.send(None)

    print("final_result:",final_result)


if __name__ == '__main__':
    main()

 

posted @ 2022-11-14 20:57  钟鼎山林  阅读(12)  评论(0编辑  收藏  举报