Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie die Funktion __iter__() in Python, um die Iterabilität von Objekten zu definieren

So verwenden Sie die Funktion __iter__() in Python, um die Iterabilität von Objekten zu definieren

WBOY
WBOYOriginal
2023-08-21 22:05:11777Durchsuche

So verwenden Sie die Funktion __iter__() in Python, um die Iterabilität von Objekten zu definieren

So verwenden Sie die Funktion __iter__() in Python, um die Iterabilität von Objekten zu definieren

In Python bezieht sich ein iterierbares Objekt auf ein Objekt, das durch einen Iterator durchlaufen werden kann. Damit ein Objekt ein iterierbares Objekt wird, muss seine Klasse die Funktion __iter__() implementieren. Diese Funktion gibt ein Iteratorobjekt zurück, das die Methode __next__() implementiert.

Das Grundformat der Funktion __iter__() ist wie folgt:

def __iter__(self):
    # 返回一个迭代器对象
    return self

Das Folgende ist ein Beispiel, um zu demonstrieren, wie die Funktion __iter__() verwendet wird, um die Iterabilität eines Objekts zu definieren.

class FibonacciSequence:
    def __init__(self, n):
        self.n = n
        self.a, self.b = 0, 1
        self.count = 0
    
    def __iter__(self):
        # 返回一个迭代器对象
        return self
    
    def __next__(self):
        if self.count < self.n:
            self.a, self.b = self.b, self.a + self.b
            self.count += 1
            return self.a
        else:
            raise StopIteration

n = int(input("请输入斐波那契数列的长度:"))
fib = FibonacciSequence(n)

print("斐波那契数列前", n, "个数字为:")
for num in fib:
    print(num)

Im obigen Beispiel haben wir eine Klasse namens FibonacciSequence definiert, um die Fibonacci-Folge zu generieren. In der Klasseninitialisierungsmethode __init__() übergeben wir den Parameter n, um die Länge der zu generierenden Fibonacci-Folge darzustellen. Die Funktion __iter__() gibt ein Iteratorobjekt selbst zurück, und das Iteratorobjekt, das die Methode __next__() implementiert, kann mithilfe einer for-Schleife durchlaufen werden.

In der Methode __next__() verwenden wir self.count, um die Länge der aktuell generierten Fibonacci-Sequenz aufzuzeichnen (d. h. die Anzahl der zurückgegebenen Zahlen). Wenn self.count kleiner als n ist, verwenden wir Fibonacci Die Regeln der Bonacci-Folge generieren die nächste Zahl, weisen self.b self.a zu, weisen self.b die Summe von self.a und self.b zu und erhöhen self.count um 1. Wenn self.count gleich n ist, lösen wir eine StopIteration-Ausnahme aus, die die Endmarkierung des Iterators darstellt.

Schließlich instanziieren wir im Hauptprogramm ein FibonacciSequence-Objekt fib, indem wir den Wert von n eingeben, ihn zum Durchlaufen an die for-Schleife übergeben und die ersten n Zahlen der Fibonacci-Folge nacheinander ausdrucken.

Anhand des obigen Beispiels können wir sehen, wie die Funktion __iter__() verwendet wird, um die Iterabilität eines Objekts zu definieren. Solange ein Objekt die Funktion __iter__() implementiert und ein Iteratorobjekt zurückgibt, das die Methode __next__() implementiert, können Sie for-Schleifen und andere Methoden verwenden, um es zu durchlaufen. Mit dieser Methode können unsere benutzerdefinierten Objekte wie die integrierten Listen, Wörterbücher und anderen Objekte von Python durchlaufen werden.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Funktion __iter__() in Python, um die Iterabilität von Objekten zu definieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn