Python生成器理解

  • Post author:
  • Post category:python


生成器是一边循环一边运算的机制,可以避免内存浪费

代码示例:

'''
构造一个函数生成器,传入一个数字,然后打印该数字内的斐波那契数列
'''

def fabs(num):
    a = 0
    b = 1
    count = 0
    while count < num:
        tmp = a
        a = b
        b = tmp + b
        yield b#函数会在此处暂停,相当于return
        count += 1

f = fabs(20)
for i in f:
    print(i)

还可以给生成器传值

'''
给生成器传值
'''

def g_test():
    while True:
        v = yield
        print("收到一个值:",v)

g = g_test()
g.__next__()#调用生成器,并传None到yield

for i in range(10):
    g.send(i)#调用生成器并传i



版权声明:本文为weixin_41522252原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。