生成器 只有在调用时才会生成相应的数据
只有一个__next__()方法。 next()
a= (i for in in range(1000))
a.__next__()
将函数中的print() 换成yield后,则变成了一个生成器:
def fib(max):
n,a,b= 0,0,1
while n < max:
yield b
a, b = b, a + b
n = n + 1
return "done"
调用方法一:
print(f.__next__())
print(f.__next__())
调用方法二:
while True:
try:
x = next(f)
print('f:', x)
except StopIteration as e:
print('Generator return value:', e.value)
break
只有一个__next__()方法。 next()
a= (i for in in range(1000))
a.__next__()
将函数中的print() 换成yield后,则变成了一个生成器:
def fib(max):
n,a,b= 0,0,1
while n < max:
yield b
a, b = b, a + b
n = n + 1
return "done"
调用方法一:
print(f.__next__())
print(f.__next__())
调用方法二:
while True:
try:
x = next(f)
print('f:', x)
except StopIteration as e:
print('Generator return value:', e.value)
break
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26735168/viewspace-2132808/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26735168/viewspace-2132808/