python 生成器从放弃到玩转

time
(name):
    % name
    :
        baozi = % (baoziname)

c = counsumer()
c.()

b1 = c.send(b1)
():
    c = counsumer()
    c2 = counsumer()
    c.()
    c2.()
    i ():
        time.sleep()
        c.send(i)
        c2.send(i)

producer()

生成器:

一边循环,一边计算的机制,称为生成器 英文:generator
个人总结:
目的
1.节省内存,计算前,不会一次性把列表都准备出来,只有要计算这条数据时,才会被生成
2.在数据的处理过程中插入自己的逻辑

解释上面的代码执行步骤

1.

c = counsumer("程荣花")

生成一个迭代对象

2.

c.next()

执行print "程荣花准备吃包子"

执行

:
        baozi =

可以看到,迭代器到yield就结束执行

3.

b1 = c.send(b1)

c.send(b1),传参给yield,并再一次调用yield

4.

baozi = % (baoziname)

执行

时间: 2024-10-05 04:15:15

python 生成器从放弃到玩转的相关文章

Python 生成器&迭代器

Python 生成器 带有 yield 的函数在 Python 中被称之为 generator(生成器),用斐波那契数列: def fab(max):     n, a, b = 0, 0, 1     while n < max:         yield b         a, b = b, a + b         n = n + 1 执行: 1 2 3 4 5 6 7 8 9 >>> for n in fab(5):     print n 1 1 2 3 5 简单地

对python生成器特性使用的好例子

1.对序列进行分组的函数(摘自web.py源码utils.py文件中) 1 def group(seq, size): 2 """ 3 Returns an iterator over a series of lists of length size from iterable. 4 5 >>> list(group([1,2,3,4], 2)) 6 [[1, 2], [3, 4]] 7 >>> list(group([1,2,3,4,5]

Python中字符串的有趣玩法

反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S[::-1] 'ponmlkjihgfedcba' 这种用法叫做three-limit slices 除此之外,还可以使用slice对象,例如 >>> 'spam'[slice(None, None, -1)] >>> unicode码与字符(single-character strings)之间的转换 >>> ord('s') # or

python生成器(笔记)

Python生成器有些难以用语言表达其概念,所以在这里用几段代码来解释~ 生成器:任何包含yield语句的函数称为生成器; 生成器是一种普通的函数语法定义的迭代器. def test2():     print 9     print 8     yield 7 test2() 上述代码什么都不返回,因为代码碰到了yield函数暂停(或冻结)了,这个暂停同时还影响了yield以上的两个print. def test2():     print 9     print 8     yield 7

Python生成器、迭代器、装饰器

Python迭代器 迭代器是访问集合内元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素都被访问一遍后结束. 迭代器不能回退,只能往前进行迭代.这并不是什么很大的缺点,因为人们几乎不需要在迭代途中进行回退操作. 常用的迭代方法有 .next()方法 for..in..方法 迭代器通俗的理解就是遍历集合内的所有元素 python生成器 这里先说简单的使用,然后再说自己创建生成器 range:生成一个list range(1,5)结果为:[1,2,3,4] xrange:生成一个x

4.Python 生成器yield

常用方法: next    获取下一个值 send    发送值到生成器 throw  发送异常到生成器 python生成器模拟线程并发:

Python 生成器和推导式

一.Python生成器和生成器函数1.生成器和生成器函数的概念    1.生成器的本质是迭代器    2.函数中包含yield,就是生成器函数 2.生成器函数的写法    def func():        a =10        yield 20    gen = func()  #没有执行,而是生成一个生成器    普通函数和生成器函数的不同    1.普通函数名()表示函数的的执行    2.生成器函数名()不是函数的执行,而是生成一个生成器 yield和return的不同    1.

python 装饰器从放弃到玩转(初级)

装饰器是困扰我很久的问题,最近突然开窍,理解了装饰器的含义 执行过程以及原理 装饰器:(本质是函数,装饰其他函数,帮其他函数实现附加的功能) 器:代表函数 装饰:代表装饰这个函数 原则: 不能修改装饰的函数内部源代码 不能修改原来函数的调用方式 装饰器公式: 高阶函数+嵌套函数 == 装饰器 (这里不对高阶函数和嵌套函数做解释,请先了解什么叫做高阶函数和嵌套函数) 下面从一个简单的程序让你了解装饰器的含义 假如我现在有这么两个别人写的函数,我们这在联合开发,现在有个需求需要对这两个函数进行性能的

python 装饰器从放弃到玩转(中级)

前面我们说到装饰器的初步使用 需求一: 那我现在有个需求,原函数是这样的 def test1(): a = "test1" time.sleep(3) return  a 可以看到是有返回值的,可我们之前的装饰器,并没有处理原函数的返回值的逻辑,那么我现在怎么办,看代码 def record_time(func): def warpper(): start_time = time.time() a = func() end_time = time.time() print "