python----iter\next

1、说明:__getitem__\setitem可以迭代,它已经不被推荐了;建议使用__iter__\next。

2、python会先去检查__iter__\next然后再去检查__getitem__\__setitem__,也就是说__iter__优先。

例子:

#!coding:utf-8
#!python version 2.7

class mysqence(object):
    def __init__(self,start,stop):
        self.start=start
        self.stop=stop
        self.current=start
    def __iter__(self):
        return self
    def next(self):
        '''如果是python3.0环境,它已经不在用next了,而是把名字改成__next__'''
        current=self.current
        if current <= self.stop:
            self.current=self.current+1
            return current
        else:
            raise StopIteration

for x in mysqence(1,5):
    print x

 

posted on 2015-11-12 19:22  蒋乐兴的技术随笔  阅读(458)  评论(0编辑  收藏  举报

导航