|
|
python3.0以前用next() 替换__next__
#!/ur/bin/env pythonimport sys;import os;class CFib: '''create a fib iterator''' def __init__(self, nMaxVal): self.m_nMaxVal = nMaxVal; def __iter__(self): print("CFib::__iter__"); self.m_nStart = 0; self.m_nEnd = 1; return self; def __next__(self): print("CFib::next"); nFib = self.m_nStart; if nFib > self.m_nMaxVal: raise StopIteration; self.m_nStart, self.m_nEnd = self.m_nEnd, self.m_nStart + self.m_nEnd; return nFib;#end of class CFibif "__main__" == __name__: fib = CFib(1000); print(fib); print(fib.__doc__); for i in fib: print(i); for i in fib: print(i); |
|