究竟是什麼iter?考慮下面的代碼塊:爲什麼必須在類中使用__iter __()方法?
class Reverse:
def __init__(self,data):
self.data = data
self.index = len(data)
def __iter__(self):
return self
def next(self):
if self.index == 0:
raise StopIteration
self.index = self.index - 1
return self.data[self.index]
省略ITER(個體)和rewritting:
class Reverse2:
def __init__(self,data):
self.data = data
self.index = len(data)
def next(self):
if self.index == 0:
raise StopIteration
self.index = self.index - 1
return self.data[self.index]
然後:
x = [1,2,3]
y = Reverse(x)
z = Reverse2(x)
y.next()
>>> 3
y.next()
>>> 2
y.next()
>>> 1
z.next()
>>> 3
z.next()
>>> 2
z.next()
>>> 1
的類行爲相同的方式而不管我是否包括iter()或不,所以我爲什麼要把它包括在第一位呢?對不起,如果我的問題不清楚 - 我只是不知道如何以更清晰的方式說明它...
ok我明白爲什麼__iter__現在必須包含,但爲什麼我應該讓該方法返回'self'? –