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循环底层原理调用,实现自定义类的迭代操作。