一、三者在代码上的特征 1.有__iter__方法的对象就是可迭代类(对象) 2.有__iter__方法,__next()方法的对象就是迭代器3.生成器 == 函数+yield 生成器属于迭代器, 迭代器是特殊的可迭代对象 二、各自的执行过程 1.可迭代对象执行过程 1.先调用iter()函数: i ...
分类:
编程语言 时间:
2018-08-10 23:19:19
阅读次数:
188
1.前言 平时开发经常会用到js异步编程,由于前端展示页面都是基于网络机顶盒(IPTV的一般性能不太好,OTT较好),目前公司主要采取的异步编程的方式有setTimeout、setInterval、requestAnimationFrame、ajax,为什么会用到异步呢,就拿业务来说,若前端全部采取 ...
分类:
编程语言 时间:
2018-08-10 20:00:22
阅读次数:
172
文章思路:本文将先介绍协程的概念,然后分别介绍Python2.x与3.x下协程的用法,最终将协程与多线程做比较并介绍异步爬虫模块。 协程 概念 协程,又称微线程,纤程,英文名Coroutine。协程的作用,是在执行函数A时,可以随时中断,去执行函数B,然后中断继续执行函数A(可以自由切换)。但这一过 ...
分类:
编程语言 时间:
2018-08-09 17:44:30
阅读次数:
267
同步模式:同步模式下,只有处理完前一个任务下一个才会执行 tornado如何使用异步非阻塞: -Future对象 -IO事件循环 -生成器 异步模式 装饰器 + Future 从而实现Tornado的异步非阻塞 GET请求 >方法被@gen.coroutine装饰且yield 一个 Future对象 ...
分类:
其他好文 时间:
2018-08-09 13:51:16
阅读次数:
194
using System; using System.Collections.Generic; namespace YieldReturn { class Program { static void Main(string[] args) { var list = new List { 1, 2, ... ...
大前提:生成器就是一种自定义的迭代器,它的本质就是一种迭代器 但凡函数体内包含一个yield关键字的,调用函数不会执行函数体代码,会得到一个返回值,该返回值就是一个生成器对象 ...
分类:
其他好文 时间:
2018-08-07 22:57:10
阅读次数:
196
列表生成器 生成器 可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的generator function。 这些可以直接作用于for循环的对象统称为可迭代对象:Iterabl ...
分类:
编程语言 时间:
2018-08-06 17:14:43
阅读次数:
183
Python学习---IO的异步[asyncio +aiohttp模块] ...
分类:
编程语言 时间:
2018-08-05 11:55:18
阅读次数:
230
参考一份示例代码运行的时候发生该错误,一般来说原因应该是request的地址和allow_domain的地址相冲突,会被过滤掉,所以解决方法是修改代码: 但是在我这里不知道为什么没有办法解决,在网上搜到了另一个方法,就是禁用中间件功能,在setting.py中添加: 中间件的作用可以参考文档:htt ...
分类:
其他好文 时间:
2018-08-02 20:44:53
阅读次数:
160
背景 首先,我不会解释这两个名词,我看过很多遍解释,可还是看不懂,还是直接看使用情景吧。 我们以佩波拉契数列为例,当我们不知道迭代器的情况下,我们写出来的代码可能是这样子的: 或者优化一下,变成这样子: 考虑到进一步的优化,我们就需要引进python的yield 语法 使用yield yield的用 ...
分类:
编程语言 时间:
2018-08-02 01:56:39
阅读次数:
274