生成器是一边循环一边运算的机制,可以避免内存浪费
代码示例:
'''
构造一个函数生成器,传入一个数字,然后打印该数字内的斐波那契数列
'''
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 版权协议,转载请附上原文出处链接和本声明。