Python语法练习_迭代器

Python语法练习

注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase Hive Flume等等~写的都是纯干货,各种顶会的论文解读,一起进步。
今天继续和大家分享一下Python语法练习_迭代器
#博学谷IT学习技术支持



前言

迭代器案例


一.迭代器案例

通过此迭代器案例,熟悉掌握迭代器的运用

class Graphic(object):
    def __init__(self, num):
        self.num = num

    def __str__(self):
        return "Graphic_" + self.num


class GraphicIter(object):
    def __init__(self, target):
        self.target = target
        self.index = 0

    def __next__(self):
        if self.index > len(self.target) - 1:
            raise StopIteration
        temp = self.target[self.index]
        self.index += 1
        return temp


class GraphicManager(object):
    def __init__(self):
        self.__graphics = []

    def add_graphic(self, graphic):
        self.__graphics.append(graphic)

    def __iter__(self):
        return GraphicIter(self.__graphics)


if __name__ == '__main__':
    graphicManager = GraphicManager()
    graphicManager.add_graphic(Graphic("1"))
    graphicManager.add_graphic(Graphic("2"))
    graphicManager.add_graphic(Graphic("3"))

    # for 循环调用
    for obj in graphicManager:
        print(obj)

    # for 循环底层调用
    graphic_manager_iter = graphicManager.__iter__()
    while True:
        try:
            obj = graphic_manager_iter.__next__()
            print(obj)
        except StopIteration:
            break


总结

自定义一个类,把这个自定义类加入__iter__方法变成可迭代的,添加对象,通过for循环和for循环底层原理调用,实现自定义类的迭代操作。

猜你喜欢

转载自blog.csdn.net/weixin_53280379/article/details/128900619