赞
踩
个人感觉python中的迭代方法,有点类似C语言中如下的功能,对结构中的链或表进行某种遍历
while(NULL!=p)
{
p->something=sth;
p=p->next;
}
下面的python代码构造了一个“person”对象,不同的person对象构成了personS集合,使用for循环在personS集合中进行迭代(遍历)
class person:
def __init__(self):
self.l=[]
self.count=0;
self.index=0;
def addNew(self,name,age):
#personReal=dict(name,age)
personReal={'name':name,'age':age}
self.count=self.count+1
self.l.append(personReal)
def __getitem__(self):
print("__getitem__")
#return self.l.next()
def next(self):
print("next")
#return self.l.next()
def __next__(self):
print("__next__")
if(self.index<self.count):
self.index=self.index+1
return self.l[self.index]
def __iter__(self):
print("__iter__")
#return self.l.next()
if(self.index<self.count):
self.index=self.index+1
#return self.l[self.index]
return iter(self.l)
if __name__ == '__main__':
personS=person()
personS.addNew("john",8)
personS.addNew("jane",7)
personS.addNew("Steve",9)
print(personS.count,personS.index,personS.l)
for ps in personS:
#print("ps.name =%s,ps.age=%d" % ps[name],ps.age)
print(ps)
print(len(ps))
print(ps.keys())
for key in ps.keys():
print("key %s,ps[key]=%s" % (key,ps[key]))
运行结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。