生成器和普通函数有些区别,比如生成器不用return返回,而用yield来返回一系列元素
除非“召唤”生成器的next(),否则函数体里面不会执行任何代码块,上下文环境保存着。
虽然不需要明确定义__iter__()和next()方法,但是它本身包含这个方法。
当想要结束一个协程时,使用close()方法即可,close会在协程中引发GeneratorExit异常,这时候可以通过try/ex...
分类:
编程语言 时间:
2014-05-10 09:53:34
阅读次数:
317
一个简单的迭代器示例
--迭代工厂函数
function value(t)
local i = 0;
return
function()
i = i+1;
return t[i];
end;
end;
t = {10,20,30};
iter = va...
分类:
其他好文 时间:
2014-05-10 08:36:53
阅读次数:
268
迭代器和和生成器都是容器对象。它们之间的关系是,生成器是一种特殊的迭代器。所以,先从迭代器入手。迭代器:python中,只要是实现了迭代协议的容器对象,都是迭代器。python的迭代器协议,基于两个方法:·next()
返回下一个·__iter__() 返回迭代器本身如下就是一个迭代器:python...
分类:
其他好文 时间:
2014-05-09 17:30:55
阅读次数:
358
typename与class都可以用作模板形参定义的关键字,两者无异~~
可是,typename的用途并非仅限于此,如下面的代码:
{CSDN:CODE:323655}
在上述代码中,iter的类型是C::const_iterator,实际的类型取决于C的类型。const_iterator 同时也是C内部的typedef 类型名。 但是,在此处,编译器的行为不会是你预期的...
分类:
编程语言 时间:
2014-05-04 00:19:35
阅读次数:
330