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 retclass Class: def __init__(self, n): self.__iter = Fib(n)# Execute here Fib class, but print("Fib iter") Not shown in output, What's the cause of the def __iter__(self): print("Class iter") return self.__iter;object = Class(8)for i in object: print(i)ouput:Class iter1123581321
Why? print("Fib iter") This command object Don't execute ?