遍历操作-getitem

class Person:pass
p = Person()
for i in p:print(i)
以上代码报错如下:

Traceback (most recent call last): File
“G:/Study/Git/FSR/FSRNet/zhongjiema-FSRNet-pytorch-master/FSRNet-pytorch/mzjtest/pytorch学习/getitem.py”,
line 4, in
for i in p: TypeError: ‘Person’ object is not iterable

原因就是自己定义的这个Person类中的对象不能被迭代,那么如何使其能够被迭代呢?
很简单,就是在类中定义方法”getitem“即可。当我们通过for…
in去遍历一个实例的时候,它会检测这个实例有没有实现__getitem__这个方法,如果有,那么就会取出这个方法所返回的数据。

class Person:def __getitem__(self, item):passp = Person()
for i in p:print(i)

结果如下:
None None None None None … None None None None None None None None

# class Person:
#     def __getitem__(self, item):
#         return 1
#
# p = Person()
# for i in p:
#     print(i)

结果如下: 1 1 1 1 1 … 1 1 1 1 1 1
为什么会一直返回1呢,因为在__getitem__中没有结束条件,所以说一般在定义__getitem__方法的时候要给出结束条件。下面给出实现方法:

class Person:def __init__(self):self.result = 1def __getitem__(self, item):self.result += 1if(self.result >= 6):raise StopIteration("停止遍历")#一般在这里抛出一个异常return self.resultp = Person()
for i in p:print(i)

结果如下:
2 3 4 5

遍历操作__getitem__相关推荐

  1. python 字典循环_Python字典遍历操作实例小结

    本文实例讲述了Python字典遍历操作.分享给大家供大家参考,具体如下: 1 遍历键值对 可以使用一个 for 循环以及方法 items() 来遍历这个字典的键值对. dict = {'evapora ...

  2. 二叉树的前中后序递归和非递归遍历操作【代码】

    "遍历"是二叉树各种操作的基础,可以在遍历过程中对节点进行各种操作,如:求节点的双亲,求节点的孩子,判断节点的层次.当然,还有一些更重要的操作,例如,依据遍历序列建立二叉树,对建立 ...

  3. 【C 语言】文件操作 ( 配置文件读写 | 读取配置文件 | 函数接口形参 | 读取配置文件的逐行遍历操作 | 读取一行文本 | 查找字符 | 删除字符串前后空格 )

    文章目录 一.函数接口形参 二.读取配置文件的逐行遍历操作 1.读取配置文件的逐行遍历操作 2.读取一行数据 3.查找字符 4.删除字符串前后的空格 5.完整代码示例 一.函数接口形参 函数作用 : ...

  4. C语言建立有向图的邻接表及其遍历操作

    1 /*C语言建立有向图的邻接表及其遍历操作*/ 2 #include"stdio.h" 3 #include"stdlib.h" 4 //图的邻接矩阵储存结构 ...

  5. c++ 图的连通分量是什么_学习数据结构第五章:图(图的遍历操作)

    第五章:图(图的遍历操作) 1.图的遍历 图的遍历:从图中某一顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点访问依次且仅访问一次 其实树的层次遍历和图的广度优先搜索类似,可以把这个二叉树看成一 ...

  6. 如何进入指定文件目录_Python如何遍历操作指定文件目录下的全部Excel文件?

    Python Tablib是麻省理工学院授权的与格式无关的表格数据集库.支持导入.导出和操作表格数据集,轻松的将数据导出为各种不同的格式,包括excel,json,html,yaml,csv,tsv等 ...

  7. php web 目录遍历,php的目录遍历操作

    * 目录遍历操作: * 1. 传统过程函数: opendir(),readdir(),closedir() * 2. 目录扫描器: scandir() * 第一种方式: 传统目录函数 * 第一步: o ...

  8. python索引例子_Python实现带下标索引的遍历操作示例

    本文实例讲述了Python实现带下标索引的遍历操作.分享给大家供大家参考,具体如下: 代码如下: #coding=utf-8 #python - 实现带下标索引的遍历. str = 'abcdefgh ...

  9. python编程遍历_Python字典遍历操作实例小结

    本文实例讲述了Python字典遍历操作.分享给大家供大家参考,具体如下: 1 遍历键值对 可以使用一个 for 循环以及方法 items() 来遍历这个字典的键值对. dict = {'evapora ...

最新文章

  1. jmeter最大请求数_jmeter单机最大并发数_动漫台
  2. C#中的深复制和浅复制(在C#中克隆对象)
  3. 自定义流操作符 重载wcout
  4. Linq to Oracle 使用教程(八)使用 T4 模版生成代码
  5. 大厂十年:我的三段职业经历和八条建议!
  6. 团队冲刺第二阶段-9
  7. kali linux引导文件修复,Kali+Windows引导修复
  8. like mybatis 用法_Mybaits中Like 的使用方式以及一些注意点
  9. MySQL5.6.10的安装
  10. 5G面临的挑战和应用场景
  11. 神经网络控制器设计原理,神经网络控制系统设计
  12. Ubuntu安装播放mp4格式视频(安装ffmpeg)
  13. 神经网络之BP算法【图文并茂】
  14. MySql常见数据类型及五大约束
  15. Hack the box靶机 Blunder
  16. APP开发的详细流程
  17. Windows10 安装spyder3
  18. vue 360全景图的实现(photo-sphere-viewer)
  19. 希捷推出数条战略有意对抗充氦硬盘
  20. java-网页404(个例)

热门文章

  1. crh寄存器_寄存器-相关博客帖子 - 电子工程世界-论坛
  2. FT232RL如何区分正品与盗版
  3. Unity开发之-Unity入门简介(近万字攻略)
  4. 苹果致力于手势再生研发,无须使用控制器即可与 ARKit 交互?
  5. 分享一下我用Python接单的个人经历
  6. UAP_STUDIO授权失败解决办法
  7. 【讲清楚】rebase的使用
  8. 详解智能制造中的计算机视觉应用瓶颈问题
  9. TFTLCD 16位并口屏幕驱动
  10. Python列表简介