鱼C论坛

 找回密码
 立即注册
查看: 3774|回复: 6

請問什麼是迭代器?

[复制链接]
发表于 2013-10-7 22:21:28 | 显示全部楼层 |阅读模式
5鱼币
1. 迭代器到底是什麼? 我看了2本書的有關說明也不明白。

2. 以下代碼中的self是什麼意思? 為什麼可以以self創建變量?
  1. class XX:
  2.        def _init_(self, max):
  3.             self.max = max
复制代码


最佳答案

查看完整内容

xx是类名,__init__是方法,在类的一个对象被建立时,马上运行,可以用于对你的对象做一些初始化。self是__init__方法的第一个参数的名称,指向对象本身。定义的时候需要写self,调用的时候不用写self,因为python自动会加上。self.max中的max表示在__init__里创建了一个新的域,名字叫max 等号后面的max表示传入的参数 虽然他们名字相同,但是他们是两个不同的变量。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-10-7 22:21:29 | 显示全部楼层

xx是类名,__init__是方法,在类的一个对象被建立时,马上运行,可以用于对你的对象做一些初始化。self是__init__方法的第一个参数的名称,指向对象本身。定义的时候需要写self,调用的时候不用写self,因为python自动会加上。
  1. class XX:
  2.        def _init_(self, max):
  3.             self.max = max
复制代码
self.max中的max表示在__init__里创建了一个新的域,名字叫max
等号后面的max表示传入的参数
虽然他们名字相同,但是他们是两个不同的变量。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-10-8 16:18:19 | 显示全部楼层
只懂得什么叫迭代:lol::lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-10-9 08:51:11 | 显示全部楼层
迭代器(iterator)有时又称游标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器物件的内容。
各种语言实作迭代器的方式皆不尽同,有些面向对象语言像Java, C#, Python, Delphi都已将迭代器的特性内建语言当中,完美的跟语言整合,我们称之隐式迭代器(implicit iterator),但像是C++语言本身就没有迭代器的特色,但STL仍利用模板实作了功能强大的迭代器。
迭代器另一方面还可以整合生成器(generator)。有些语言将二者视为同一接口,有些语言则将之独立化。

以上维基百科上的解释
我觉得迭代器就是升级了的元素指针,以前的指针只用来加加减减访问元素,而这里被规范化,拥有了自己独立的包装,对外也提供了操作接口(迭代器的一些操作 begin/end 之类)。而且,还有一层意思就是,凡是实现了这样的操作功能的东西都可以称作迭代器。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-10-10 22:30:50 | 显示全部楼层
福禄娃娃 发表于 2013-10-9 08:51
迭代器(iterator)有时又称游标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如链表或 ...

請問可否回答一下我的問題2?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-25 13:11:41 | 显示全部楼层
虽然还不理解,慢慢体会吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-26 09:10:23 | 显示全部楼层
学习下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 12:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表