python 将对象设置为可迭代有两种实现方式
来源:互联网 发布:ug汽车大模具编程刀路 编辑:程序博客网 时间:2024/06/06 07:22
python 将对象设置为可迭代有两种实现方式:
1,实现 __getitem__(self)
class Library(object):
def __init__(self):
self.value=['a','b','c','d','e']
def __getitem__(self, i):
if i>=len(self.value):
raise IndexError("out of index")
value=self.value[i]
return value
调用的时候,系统默认从0 开始传入,并使得i=i+1
2,实现 __iter__(self),next(self)
class Library2(object):
def __init__(self):
self.value=['a','b','c','d','e']
self.i=-1
def __iter__(self):
return self
def next(self):
self.i += 1
if self.i>=len(self.value):
raise StopIteration
return self.value[self.i]
test=Library2()
print test.next()
print test.next()
在这里可以像生成器一样使用
1,实现 __getitem__(self)
class Library(object):
def __init__(self):
self.value=['a','b','c','d','e']
def __getitem__(self, i):
if i>=len(self.value):
raise IndexError("out of index")
value=self.value[i]
return value
调用的时候,系统默认从0 开始传入,并使得i=i+1
2,实现 __iter__(self),next(self)
class Library2(object):
def __init__(self):
self.value=['a','b','c','d','e']
self.i=-1
def __iter__(self):
return self
def next(self):
self.i += 1
if self.i>=len(self.value):
raise StopIteration
return self.value[self.i]
test=Library2()
print test.next()
print test.next()
在这里可以像生成器一样使用
0 0
- python 将对象设置为可迭代有两种实现方式
- 将ajax方式设置为同步
- 未将对象引用设置为对象的实例
- 未将对象设置为对象实例化
- 怎么将NSDictionary的key设置为mode对象
- 将Ultraedit设置为Python/Java编译环境
- 将ubuntu12.04LTS的默认python设置为python3
- python爬虫<将scrapy的请求设置为同步>
- activiti学习--12 个人任务及三种分配方式:直接设置代理人+流程变量设置代理人+实现类的方式设置代理人+将任务代理人设置为别人
- NET实现将某窗口设置为最前
- 是否将网址设置为主页 的代码实现?
- C#实现将应用程序设置为开机启动的方法
- 将每行映射为MAP对象的RowMapper实现
- 基于JAXB实现将vo对象转化为xml字符串
- python实现将程序以守护进程的方式运行
- python实现将txt文件格式转换为arff格式
- 将字符串转化为数字的python实现
- python实现将m3u8格式转换为mp4视频格式
- 单调队列 POJ 2823+单调栈 HDU 1506
- <Android 开源库> FlycoTabLayout 从头到脚
- poj 3009 Curling 2.0
- hihocoder 1142 三分法求极值
- 如何控制android中ImageView的位置
- python 将对象设置为可迭代有两种实现方式
- Google数据分析
- 小白训练Day3
- 私人笔记
- 病毒 LCIS
- .NET 线程对象私有字段侵入式编程
- java如何生成二维码
- 【阅读】 软技能——代码之外的生存指南
- NSOJ 国王的魔镜