class Fib:
def __init__(self, nn):
self.__n = nn
self.__i = 0
self.__p1 = self.__p2 = 1
def __iter__(self):
print("Fib iter")
return self
def __next__(self):
self.__i += 1
if self.__i > self.__n:
raise StopIteration
if self.__i in [1, 2]:
return 1
ret = self.__p1 + self.__p2
self.__p1, self.__p2 = self.__p2, ret
return ret
class Class:
def __init__(self, n):
self.__iter = Fib(n)#这里执行Fib class,但 print("Fib iter")没有显示在output,什么原因
def __iter__(self):
print("Class iter")
return self.__iter;
object = Class(8)
for i in object:
print(i)
ouput:
Class iter
1
1
2
3
5
8
13
21
为什么 print("Fib iter")这条命令object不执行?