当前位置: 首页 > news >正文

20和遍历以及迭代器有关的一些东西

知识点有点散,只能这样记录了

1、这边是和遍历有关的:

class Person:def __init__(self):self.result = 1def __getitem__(self, item):self.result += 1if self.result >= 6:raise StopIteration('停止遍历')return self.resultpassp = Person()
for i in p:print(i)

还有一种方法,没看明白

2、迭代器很久很久之前学过next()是敲一下,打印一下。敲一下,打印一下。这里也是一样

class Person:def __init__(self):self.result = 1def __next__(self):self.result += 1if self.result >= 6:raise StopIteration('无法打印')return self.result
p =Person()
print(next(p))
print(next(p))
print(next(p))

3、迭代器的一些机理说明

class Person:def __init__(self):self.age = 1def __iter__(self):self.age = 1return selfdef __next__(self):self.age += 1if self.age >= 6:raise StopIteration('stop')return self.age
p=Person()
for i in p:print(i)
for i in p:print(i)
print(p.age)

在这里说一下,迭代器一定能通过next访问,但是能通过next访问的不一定是迭代器

在这里 for in 的这个结构能用好多次!!!


具体方法机理为:用for in访问迭代器的时候会访问def__liter__这样一个方法。然后不断地去调用next方法获取数据,直到碰到异常为止


第二次使用p实例的时候,又访问 又初始化为1 了

只有在两个方法都实现了,才是一个完整的迭代器!!!一个是iter 一个是next

4、iter的本质:

iter的本质是什么?iter的本质是,把东西搞成可迭代器,把对象放过来就是迭代器,然后可以用next去访问迭代器。

http://www.lryc.cn/news/192826.html

相关文章:

  • 前端工程化(editorconfig+ESLint+Prettier+StyleLint+Husky、Commitlint)
  • UI自动化测试:Selenium+PO模式+Pytest+Allure整合
  • 【排序算法】详解冒泡排序及其多种优化稳定性分析
  • 使用 Go 和 Wails 构建跨平台桌面应用程序
  • 花2个月时间学习,面华为测开岗要30k,面试官竟说:你不是在搞笑。。。
  • 【Python学习笔记】字符串
  • 【AUTOSAR中断管理】TC3XX中断系统介绍
  • Unity实现摄像机向屏幕中间发射射线射击物体
  • 测试时数据增广(TTA)与mmdetection3d中的实现
  • 深入探索BP神经网络【简单原理、实际应用和Python示例】
  • 【LVGL】SquareLine Studio入门基础操作
  • 【单片机】19-TFT彩屏
  • 高质量!推荐一些免费自学网站
  • Linux之open/close/read/write/lseek记录
  • 3D调研-摄像头
  • 光耦合器继电器与传统继电器:哪种最适合您的项目?
  • 分享关于职场心态
  • OK3568 UBUNTU 安装使用I2C-TOOLS
  • mysql面试题53:一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录
  • Docker服务更新与发现
  • 【2023集创赛】安谋科技杯二等奖作品: 智能体感游戏机
  • 如何使用前端包管理器(如npm、Yarn)?
  • Codeforces Round 903 (Div. 3) C(矩形旋转之后对应的坐标)
  • 月薪过万的Java面试
  • html进阶语法
  • 博客系统(java,MySQL,HTML)
  • Android Studio SDKGradleJDK等工具的正确使用
  • 利用Python提取将Excel/PDF文件数据
  • 纯 CSS 实现瀑布流布局的方法
  • 输入法显示到语言栏_状态栏