热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python中的iter迭代

具体解释了怎么用迭代,怎样用迭代,怎样转换成迭代,可以看看列表,字典,元组,字符串,

具体解释了怎么用迭代,怎样用迭代,怎样转换成迭代,可以看看


  • 列表,字典,元组,字符串,集合可以使用迭代
  • 自定义类中可以定义iter方法,来使用迭代
  • iter方法意为可以迭代
  • iterator意为定义迭代的对象(既有__iter__方法,也有__next__方法)

(一)

from collections.abc import Iterable
from collections.abc import Iteratorimport time
class Person(object):def __init__(self):self.names = list()self.current_num = 0def add_person(self,name):self.names.append(name)def __iter__(self):#passreturn PersonsIterator(self)class PersonsIterator(object):def __init__(self,obj):self.obj = objself.current_num = 0def __iter__(self):passdef __next__(self):#pass#return 12345if self.current_num p1.add_person('张三')
p1.add_person('李四')
p1.add_person('王五')p_iter = iter(p1)
while True:try:ret = next(p_iter)print(ret)except Exception:break

运行结果:

 

 (二)

from collections.abc import Iterable
from collections.abc import Iteratorimport time
class Person(object):def __init__(self):self.names = list()self.current_num = 0def add_person(self,name):self.names.append(name)def __iter__(self):#passreturn PersonsIterator(self)class PersonsIterator(object):def __init__(self,obj):self.obj = objself.current_num = 0def __iter__(self):passdef __next__(self):#pass#return 12345if self.current_num p1.add_person('张三')
p1.add_person('李四')
p1.add_person('王五')print(isinstance(p1,Iterable)) #判断是否可以迭代
# iter()的作用是调用p1的iter()方法
# next()的作用是调用迭代器的next方法
p_Iterator = iter(p1)
print(isinstance(p_Iterator,Iterator)) #判断是否为迭代器for temp in p1:print(temp)time.sleep(1)

运行结果:

 


推荐阅读
author-avatar
幸福树袋熊2502903015
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有