python——协程(gevent)迭代器生成器(yield)
创建一个可迭代对象
https://blog.csdn.net/mieleizhi0522/article/details/82142856
#迭代器 #创建一个可以迭代的对象 from collections import Iterable class MyClass(object): def __init__(self): self.names = list() def add(self, name): self.names.append(name) #添加这个方法就可以将创建的类变成可以迭代的对象 def __iter__(self): return ClassmateIterable(self)#必须返回一个对象的引用 class ClassmateIterable(object): def __init__(self,obj): self.obj = obj self.current = 0 def __iter__(self): pass def __next__(self):#每一次执行for循环都会调用这个next方法 if (self.current < len(self.obj.names)): res = self.obj.names[self.current] self.current=self.current+1 return res else:#抛出一个异常 raise StopAsyncIteration classmate = MyClass() classmate.add("shun") classmate.add("shun2") print(isinstance(classmate,Iterable))#判断是否是可以迭代的,返回为true就是迭代的 for i in classmate: print(i)