三、多任务-协程

一、迭代器

在原来的基础上,产生一个新的版本。

for temp in 100:

    print(temp)

int不是一个可以迭代类型。

from collections import Iterable

判断是否迭代,只要判断是否是Iterable的一个子类即可。

用isinstance判断。

isinstance(a,A)    返回值是true,表示a对象是由A类创建出来的。例如:

isinstance([11,22,33],Iterable)          返回True。表示[11,22,33]可以迭代。

isinstance("abc",Iterable)                  返回True。表示"abc"可以迭代。

isinstance(100,Iterable)                    返回False。表示100不可迭代。

from collections import Iterable
class
Classmate(object): def __init__(self): self.names = list() def add(self,name): self.names.append(name)
def __iter__(self):
"""如果想要一个对象称为一个 可以迭代的对象,即可以使用for,那么必须实现__iter__方法"""
return ClassIterator()
class ClassIterator(object):
def __iter__(self):
pass
def __next__(self):
pass classmate
= Classmate() classmate.add("老王") classmate.add("王二") classmate.add("张三")
print("判断classmate是否是可以迭代的对象:",isinstance(classmate,Iterable))
for name in classmate: print(names)

for temp in xxx_obj:

    pass

1、判断xxxx_obj是否是可以迭代。

2、在第一步成立的前提下,调用iter函数得到xxxx_obj对象的__iter__方法的返回值。

3、__iter__方法的返回值是一个迭代器。

猜你喜欢

转载自www.cnblogs.com/ql0302/p/11240610.html