码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象-迭代器

时间:2018-10-20 21:05:31      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:对象   一个   ati   def   ISE   print   ==   打印   end   

创建一个迭代器的类

class Foo:
    def __init__(self,n):
        self.n = n
    def __iter__(self): #将对象变成一个可迭代对象
        return self

    def __next__(self):  #迭代器需要一个next方法
        if self.n == 100:
            raise StopIteration(‘终止‘)
        self.n += 1
        return self.n

f1 = Foo(10)

for i in f1: #iter(f1) == f1.__iter__()
    print(i)

‘‘‘
11
12
13
14
15
16
17
18
19
...
‘‘‘

打印斐波拉且数列

class Fib:
    def __init__(self):
        self._a = 1
        self._b =1
        print(self._a,self._b,end=‘  ‘)
    def __iter__(self):
        return self
    def __next__(self):
        if self._b>1000:
            raise StopIteration("stopd")
        self._a,self._b=self._b,self._a+self._b
        return self._a,self._b
a = Fib()
for i in a:
    print(i[1],end=‘  ‘)
‘‘‘
1 1  2  3  5  8  13  21  34  55  89  144  233  377  610  987  1597 
‘‘‘

面向对象-迭代器

标签:对象   一个   ati   def   ISE   print   ==   打印   end   

原文地址:https://www.cnblogs.com/chrrydot/p/9822844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!