from itertools import chain
my_list = [1,2,3]
my_dict = {
"key1":"value1",
"key2":"value2"
}
#直接循环输出#for value in chain(my_list,my_dict,range(2,5)):# print(value)#控制输出defmy_chain(*args,**kwargs):for my_iterable in args
yieldfrom my_iterable
for value in my_chain(my_list,my_dict,range(2,5)):
print(value)
defg1(gen):yieldfrom gen
defmain():
g = g1()
g.send(none)
# main调用方,g1委托生成器,gen子生成器# yield from 会在调用方与子生成器之间建立一个双向通道
import acyncio
import time
async defget_html(url):
print("start get url")
await asyncio.sleep(2)#如果是mysql,redis需要异步库操作
print("end get url")
if __name__ == "__main__":
sart_time = time.time()
loop = asyncio.get_event_loop()
tasks = [get_html("baidu.com") for i in range(10)]
loop.run_until_complete(asyncio.wait(tasks))
print(time.time()-start_time)