andylin02 发表于 2013-1-15 02:16:10

python 之 迭代器

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);      
页: [1]
查看完整版本: python 之 迭代器