我在Python迭代器上有點遺失。我偶爾使用它們,但我不記得自己創建一個。我從什麼地方看,我不記得在哪裏,像這樣的代碼:什麼是迭代類方法next()和__next __()for,並且有什麼區別?
class Foo(object):
def __init__(self):
self.something = "initial_value"
def __iter__(self):
return self
def next(self):
# I don't quite remember what was here :S
return self.something
我猜__iter__()
方法應該返回一個迭代器,而迭代器應該有下一個方法吧?那麼__next__()
方法呢?是不是直接迭代一個類而不返回帶有__iter__()
方法的另一個迭代器?
** foo **是一個迭代器。在這種情況下,它只是返回自己。一個對象可以支持迭代,但不能成爲迭代器。 – Wes
謝謝,修正了代碼。 – yasar