Ich lerne Python und begann gerade über Iteratoren und iterables zu lesen, ich habe gelesen this Post und this beide, die versuchen, dieses Konzept zu erklären. Allerdings beim Lesen dieses Beispiels. Ich habe es geschrieben unterwer ruft tatsächlich __iter__ Methode
class zrange:
def __init__(self, n):
self.n = n
def __iter__(self):
return zrange_iter(self.n)
class zrange_iter:
def __init__(self, n):
self.i = 0
self.n = n
def __iter__(self):
# Iterators are iterables too.
# Adding this functions to make them so.
return self
def next(self):
if self.i < self.n:
i = self.i
self.i += 1
return i
else:
raise StopIteration()
nun das obige Beispiel als solche
>>> z = zrange(5)
>>> list(z)
[0, 1, 2, 3, 4]
Meine Frage verwendet wird, ist, wann oder wer die iter Methode aufruft?
und meine nächste Frage war, was war der Punkt des Hinzufügens def __iter__(self)
in Klasse zrange_iter
?