Jestem trochę zagubiony na iteratorach Pythona. Czasami ich używam, ale nie pamiętam, żeby sam je stworzyć. Czytałem gdzieś, że nie pamiętam gdzie, kod tak:Jakie są metody klasy iteracji next() i __next __() dla i jaka jest różnica?
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
Chyba __iter__()
metoda ma powrócić iterator, iterator i że powinien mieć następną metodę prawo? A co z metodą __next__()
? to jest do bezpośredniego iterowania w klasie bez zwracania innego iteratora z metodą __iter__()
?
** foo ** to iterator. W tym przypadku po prostu się zwraca. Obiekt może obsługiwać iterację, ale nie może być iteratorem. – Wes
dzięki, naprawiono kod. – yasar