1.yield实现的功能yield return:先看下面的代码,通过yield return实现了类似用foreach遍历数组的功能,说明yield return也是用来实现迭代器的功能的。 using static System.Console; using System.Collections ...
在认识yield的时候,网上很多文章都是说这个是个生成器,但是我并不知道这个是用来做什么的,所以概念很快就忘记了,后面读了几个文章以后感觉茅塞顿开。我就接介绍一下。 有一篇文章提到,可以把yield看成是生成器的return的一部分,首先一个return的作用是在程序中返回某个值,返回之后程序就不再 ...
分类:
编程语言 时间:
2020-07-28 14:38:10
阅读次数:
78
yield 是产出的意思,就是返回一个值,这一点有点像return,但是不会结束函数的执行。那它什么时候继续执行呢?等待下一次迭代器被调用时候返回上次中断的地方, 利用这个特性可以实现range函数: def my_range(max_num): i = 0 while i < max_num: y ...
分类:
其他好文 时间:
2020-07-27 23:43:11
阅读次数:
103
ES6 Generator: 利用阮大神的书中描述的: 形式上,Generator 函数是一个普通函数,但是有两个特征。一是,function关键字与函数名之间有一个星号;二是,函数体内部使用yield表达式,定义不同的内部状态(yield在英语里的意思就是“产出”)。 其实简单来说就是通过各种状态 ...
<script type="text/javascript"> function* myGenerator(){ console.log('业务逻辑A') let result=yield 'hello' console.log(result) console.log('业务逻辑B') yield ...
分类:
其他好文 时间:
2020-07-26 15:13:08
阅读次数:
51
CrawlSpider一直无法进入回调函数的 碰到的两个坑: 1、正则表达式写的不对 start_urls = ['http://wz.sun0769.com/political/index/politicsNewest?id=1&page=1'] link = LinkExtractor(allo ...
分类:
其他好文 时间:
2020-07-26 01:52:52
阅读次数:
85
function* bar() { const result = yield new Promise((resolve, reject) => { setTimeout(() => { resolve('Hello Generator'); }, 3000); }); console.log(res ...
分类:
其他好文 时间:
2020-07-23 23:26:40
阅读次数:
118
1、面向对象的应用(异常处理、文件备份) -装饰器:1、用于扩展原来函数功能的一种函数 2、返回函数的函数 3、在不用更改原函数的代码前提下给函数增加新的功能 带参数的装饰器: -@wraps():使用装饰器后,__name__和__doc__会发生改变,所以使用@wraps装饰器会起到还原的效果 ...
分类:
编程语言 时间:
2020-07-23 09:14:41
阅读次数:
71
序列分类 序列类型的abc继承关系 list中+、+=和extend的区别 实现可切片的对象 bisect维护已排序序列 什么时候不应该用列表 列表生成式、生成器表达式、字典推导式 ...
分类:
其他好文 时间:
2020-07-20 15:46:26
阅读次数:
58
swoole 协程通道 为了协程直接互相通讯传递数据 和go的通道很相似 Co\run(function(){ $chan = new Swoole\Coroutine\Channel(1); Swoole\Coroutine::create(function () use ($chan) { fo ...
分类:
其他好文 时间:
2020-07-19 23:38:57
阅读次数:
108