Maison  >  Article  >  développement back-end  >  Comment utiliser la fonction __iter__() en Python pour définir l'itérabilité des objets

Comment utiliser la fonction __iter__() en Python pour définir l'itérabilité des objets

WBOY
WBOYoriginal
2023-08-21 22:05:11731parcourir

Comment utiliser la fonction __iter__() en Python pour définir litérabilité des objets

Comment utiliser la fonction __iter__() en Python pour définir l'itérabilité des objets

En Python, un objet itérable fait référence à un objet qui peut être parcouru via un itérateur. Pour qu'un objet devienne un objet itérable, sa classe doit implémenter la fonction __iter__(). Cette fonction renvoie un objet itérateur qui implémente la méthode __next__().

Le format de base de la fonction __iter__() est le suivant :

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

Ce qui suit est un exemple pour montrer comment utiliser la fonction __iter__() pour définir l'itérabilité d'un objet.

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)

Dans l'exemple ci-dessus, nous avons défini une classe appelée FibonacciSequence pour générer la séquence de Fibonacci. Dans la méthode d'initialisation de classe __init__(), nous passons le paramètre n pour représenter la longueur de la séquence de Fibonacci à générer. La fonction __iter__() renvoie un objet itérateur self, et l'objet itérateur qui implémente la méthode __next__() peut être parcouru à l'aide d'une boucle for.

Dans la méthode __next__(), nous utilisons self.count pour enregistrer la longueur de la séquence de Fibonacci actuellement générée (c'est-à-dire le nombre de nombres renvoyés). Lorsque self.count est inférieur à n, nous utilisons Fibonacci. Les règles de la séquence de Bonacci génèrent le nombre suivant, attribuent self.b à self.a, attribuent la somme de self.a et self.b à self.b et augmentent self.count de 1. Lorsque self.count est égal à n, nous levons une exception StopIteration, qui est la marque de fin de l'itérateur.

Enfin, dans le programme principal, nous instancions un objet FibonacciSequence fib en saisissant la valeur de n, en le transmettant dans la boucle for à parcourir et en imprimant les n premiers nombres de la séquence de Fibonacci un par un.

À travers l'exemple ci-dessus, nous pouvons voir comment utiliser la fonction __iter__() pour définir l'itérabilité d'un objet. Tant qu'un objet implémente la fonction __iter__() et renvoie un objet itérateur qui implémente la méthode __next__(), vous pouvez utiliser des boucles for et d'autres méthodes pour le parcourir. Cette méthode nous permet de personnaliser les objets qui peuvent être parcourus comme les listes intégrées, les dictionnaires et d'autres objets de Python.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn