python 將物件設定為可迭代有兩種實現方式

2021-07-30 16:58:06 字數 780 閱讀 2383

python 將物件設定為可迭代有兩種實現方式:

1,實現  __getitem__(self)

class library(object):

def __init__(self):

self.value=['a','b','c','d','e']

def __getitem__(self, i):

if i>=len(self.value):

raise indexerror("out of index")

value=self.value[i]

return value

呼叫的時候,系統預設從0 開始傳入,並使得i=i+1

2,實現

__iter__(self),next(self)

class library2(object):

def __init__(self):

self.value=['a','b','c','d','e']

self.i=-1

def __iter__(self):

return self

def next(self):

self.i += 1

if self.i>=len(self.value):

raise stopiteration

return self.value[self.i]

test=library2()

print test.next()

print test.next()

在這裡可以像生成器一樣使用

python 將物件設定為可迭代的兩種實現方法

1 實現 getitem class library object def init self self.value a b c d e def getitem self,i if i len se raise indexerror out of index v程式設計客棧alue self.val...

Python 可迭代物件

1.可迭代物件 以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別 如 list tuple dict set str等 一類是generator,包括生成器和帶yield 的 generator function 這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable 2...

python可迭代物件

0 在python中只要是能用for in的,都是可迭代物件,讓我們看下定義 定義 我們已經知道可以對list tuple dict set str等型別的資料使用for in 的迴圈語法,會從其中依次拿到資料元素進行使用,我們把這樣的過程稱為遍歷,也叫迭代。所以我們把可以通過for in 這類語句...