20181009python生成器/yield协程/gevent写简单的下载器
2018-10-12 08:32
579 查看
1、生成器:
[code]'''第二种生成器''' # 函数只有有yield存在就是生成器 def test(i): while True: i += 1 res = yield i print(res) i += 1 return aa def main(): t = test(1) # 创建生成器对象 print(next(t)) # next第一次执行从上到下,yield是终点 print(next(t)) print(t.send(5)) if __name__ == '__main__': main()
yield协程demo:
[code]def run1(): while True: print('run1____') yield def run2(): while True: print('run2____') yield def main(): while True: next(run1()) next(run2()) if __name__ == '__main__': main()
gevent写简单的下载图片
[code]import gevent import requests,lxml # from gevent import monkey # monkey.patch_all() def get_pic(url, list): headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' } response = requests.get(url, headers=headers) with open('./pic/'+str(list.pop(0)) + '.png', 'wb') as f: f.write(response.content) def get_pic_name_list(): def main(): get_pic_name_list() list = [x for x in range(9999)] gevent.joinall([ gevent.spawn(get_pic, 'http://pic8.iqiyipic.com/image/20181008/eb/af/v_116880780_m_601_m11_180_236.jpg', list), gevent.spawn(get_pic, 'http://pic6.iqiyipic.com/image/20181004/a2/2b/v_112874372_m_601_m15_180_236.jpg', list) ]) if __name__ == '__main__': main()
阅读更多
相关文章推荐
- python yield(生成器)的简单使用
- python的迭代器iterator和生成器generator(关键字yield)的简单理解
- 简单介绍Python中利用生成器实现的并发编程
- Python:生成器的简单理解
- 4.利用python生成器实现简单的“生产者消费者”模型
- python 中生成器的简单介绍及用法
- Python3简单教程(四)迭代器与生成器
- Python生成器定义与简单用法实例分析
- 简单理解Python中基于生成器的状态机
- Python简单学习(lecture3)编程、条件控制、循环语句、迭代器和生成器
- Python2随机数列生成器简单实例
- 【Python】用生成器generator简单实现杨辉三角
- 强大的Python 迭代器和简单生成器
- Python中的新型构造迭代器和简单生成器
- 简单的python下载器
- python打造百行代码实现简单的下载器
- 用python写个类似浏览器的下载器,超简单的
- 可爱的 Python: 迭代器和简单生成器
- 简单介绍Python中利用生成器实现的并发编程
- 使用Go语言简单模拟Python的生成器