大佬,你说的这些我暂时还看不懂。。。
我写了个简单的代码验证了一下,next()一个生成器,似乎就是按单词next的字面意思
,再取出下一个值。不知道为什么文档里说用next会输出None。
def fab(max):
global n,a,b
n,a,b=0,0,1
while n<max:
yield b
a,b=b,a+b
n=n+1
case=fab(3)
print(next(case)) #第1次
print('nab=',n,a,b)
print(next(case)) #第2次
print('nab=',n,a,b)
print(next(case)) #第3次
print('nab=',n,a,b)
结果:
1
nab= 0 0 1
1
nab= 1 1 1
2
nab= 2 1 2
【 在 kkito 的大作中提到: 】
大可把这两个问题分开来看
next, 迭代器,生成器这些是一组问题
__next__, __iter__, __add__, __sub__
这些方法是另一组问题,这些套路用足,会显得非常pythonic
【 在 HYNOS 的大作中提到: 】
: 我可能没理解对这些代码的意思。。
: 我的问题其实就是这句话是什么意思:
: If __next__() is used (typically via either a for or the next() builtin) then the result is None.
: ...................
--
FROM 61.180.25.*