【1】生成器
很难用简单的语言描述生成器。
生成器:从字面上来理解,就是以某种规则为基础,不断的生成数据的工具
生成器函数: 在函数中如果出现了yield关键字,那么该函数就不再是普通函数,而是生成器函数。
我们先举个例子
def fib(max): a, b = 1, 1 while a < max: yield a a, b = b, a+b for i in fib(100): print i
如果没有yield 那么这个函数中的内容可要执行很多此了,那么这个函数就像,抗日神剧里面鬼子使用的三八大盖。发射一发子弹后就不能发射了,必须重新装弹才能发射下一发
在一个生成器中,如果没有return,则默认执行到函数完毕时返回StopIteration;
而通常我们说 生成器的意义:通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 --借用雪峰大大的话
【2】装饰器
原文:http://www.cnblogs.com/nerdlerss/p/6237544.html