#isinstance() 函数来判断一个对象是否是一个已知的类型
#1.Iterable(可迭代的,用来判断是否是可迭代的对象)
#2.Iterator(迭代器,用来判断是否是迭代器)
#可迭代的对象:
#可以直接使用for循环遍历的对象,成为可迭代的对象,
#常见的可迭代的对象有:list、tuple、dict、set、str以及生成器。
#更加专业的判断一个对象是否是可迭代的对象是:这个对象有一个__iter__方法,
#并且这个方法会返回一个迭代器对象,这种对象就叫做可迭代的对象。
from collections import Iterable,Iterator
a = [1,2,3,4]
# print(isinstance(a,Iterable))
# class Myrange(object):
# def __next__(self):
# pass
# def __iter__(self):
# pass
# a = Myrange()
# print(isinstance(a,Iterator)) #用于判断a是否是迭代器对象
class MyRangeIterator(object):
def __init__(self,start,end):
self.index = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.index < self.end:
temp = self.index
self.index += 1
return temp
else:
raise StopIteration()
class MyRange(object):
"""MyRange()是可迭代对象"""
def __init__(self,start,end):
self.start = start
self.end = end
def __iter__(self):
return MyRangeIterator(self.start,self.end)
a = MyRange(1,10)
for x in a:
print(x)
Python中的可迭代对象和迭代器
最新推荐文章于 2024-08-21 20:06:47 发布