利用python自定义完整版迭代器

来源:互联网 发布:淘宝实体娃娃是真的吗 编辑:程序博客网 时间:2024/06/12 05:05

classMyList(object):

    """自定义的可迭代对象,迭代器容器"""

    def __init__(self):

        self.container = []

        self.i = 0

 

    def add(self, item):

        """向对象中添加数据"""

        self.container.append(item)

 

    def __next__(self):

        """对迭代器每次迭代的时候被调用"""

        if self.i < len(self.container):

            item = self.container[self.i]

            self.i += 1

            return item

        else:

            raise StopIteration

 

    def __iter__(self):

        return self

 

 

my_list1 = MyList()

my_list1.add(100)

my_list1.add(200)

my_list1.add(300)

 

it =my_list1.__iter__()

from collectionsimport Iterator

 

print(isinstance(it,Iterator))

 

 

for num in my_list1:

    print(num)

 

 

# iterator =my_list1.__iter__()

#

#iterator.__next__() # 100  i=0

#iterator.__next__() # 200  i=1

#

#

# iterator2 =my_list1.__iter__()

#iterator2.__next__() # 100   i=0

 

# #数据属性   类属性  对象属性/实例属性

#

# #函数方法 对象方法 类方法 静态方法

#

# def object_fun(self):

#     #对象方法

#    通过self可以使用对象属性 类属性

#

# @classmethod

# def class_fun(cls):

#     #类方法

#    通过cls可以使用类属性

#

# @staticmethod

# def static_fun():

#     #静态方法

#   如果不通过类名,那么类属性与对象属性都无法使用

原创粉丝点击