#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高階專題 可迭代物件協議以及迭代器
1.迭代協議與可迭代物件 只有實現了迭代協議 iter 才可以稱為可迭代物件 2.迭代器 訪問集合內元素的方式,用於遍歷資料,但是無法返回,提供了惰性訪問資料,同時實現了 iter 以及 next 協議 from collections.abc import iterable,iterator it...
python中 可迭代物件
迭代是訪問集合元素的 種 式。迭代器是 個可以記住遍歷的位置的物件。迭代器物件從集合的第 個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。我們已經知道可以對list tuple str等型別的資料使 for in 的迴圈語法從 其中依次拿到資料進 使 我們把這樣的過程稱為遍歷,也...
python迭代和如何判斷乙個物件是可迭代物件
可以理解為,任意的集合使用for迴圈遍歷 python中,迭代永遠是取出元素本身,而非元素的索引。對於有序集合,有時候會需要取出元素的索引,可以使用python內建的enumerate函式。enumerate函式可以把乙個list變成索引 元素對,這樣就可以在for迴圈中同時迭代索引和元素本身。li...