怎么建设属于自己的网站,明确好企业的价值主张,大学校园网站建设,网络运维工作总结0. 实现一个可以迭代的对象
1#xff09;要想使一个对象实现迭代的功能#xff0c;须实现__iter__和__next__方法。 2#xff09;判断classmate是否是可以迭代的对象#xff1a;
from collections import Iterable
isinstance(classmate, Iterable)结果为True则说明是可以…0. 实现一个可以迭代的对象
1要想使一个对象实现迭代的功能须实现__iter__和__next__方法。 2判断classmate是否是可以迭代的对象
from collections import Iterable
isinstance(classmate, Iterable)结果为True则说明是可以迭代的对象结果为False则说明不是可迭代的对象。
3判断classmate_iterator是否是迭代器:
from collections import Iteratorclassmate_iterator iter(classmate)
isinstance(classmate_iterator, Iterator)结果为True则说明是迭代器结果为False则说明不是迭代器。
4)整体代码如下 import time
# from collections import Iterable
# from collections import Iteratorclass Classmate(object):def __init__(self):self.names list()self.current_num 0def __iter__(self):如果想要一个对象称为一个 可以迭代的对象即可以使用for那么必须实现__iter__方法return self # 调用iter(xxobj)的时候 只要__iter__方法返回一个 迭代器即可至于是自己 还是 别的对象都可以的, 但是要保证是一个迭代器(即实现了 __iter__ __next__方法)def __next__(self):if self.current_num len(self.names):ret self.names[self.current_num]self.current_num 1return retelse:raise StopIterationdef add(self, name):self.names.append(name)classmate Classmate()
classmate.add(老王)
classmate.add(王二)
classmate.add(张三)# print(判断classmate是否是可以迭代的对象:, isinstance(classmate, Iterable))
# classmate_iterator iter(classmate)
# print(判断classmate_iterator是否是迭代器:, isinstance(classmate_iterator, Iterator))for name in classmate:print(name)time.sleep(1)
运行结果
老王
王二
张三