# 2021年12月15日,第四周12~13
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import time
from collections.abc import Iterable
from collections.abc import Iterator
def func1(args=1):
# 生成器回顾
for i in range(args):
i = i * i
yield i
def day13_case1():
# 生成器回顾
list_generator = func1(10)
print(next(list_generator)) # 运行一次取一个值
print(next(list_generator))
print(next(list_generator))
return 0
def func2(name):
# 上架包子卖包子
print("%s有买包子需求了" % (name))
while True:
bread = yield
print("种类%s包子上架1个了,被%s买了1个" % (bread, name))
def day13_case2():
# 生成器串行操作
buy1 = func2("张三") # 生成器0
buy2 = func2("李四") # 生成器1
buy1.__next__()
buy2.__next__() # 要运行一次才能传如参数,否则提示生成器未启动
for i in range(3):
time.sleep(0.5)
buy1.send(i + 1) # 生成器0传入参数
buy2.send(i + 1) # 生成器1传入参数
return 0
Python-day13:迭代器与生成器
最新推荐文章于 2024-05-16 21:41:01 发布