Maison > Article > développement back-end > Comment utiliser la fonction __len__() pour définir la longueur d'un objet en Python
Comment utiliser la fonction __len__() en Python pour définir la longueur d'un objet
En Python, nous pouvons généralement obtenir la longueur d'un objet grâce à la fonction len() intégrée. Cependant, pour les objets personnalisés, la fonction len() ne renvoie pas nécessairement correctement la longueur de l'objet. Pour résoudre ce problème, Python fournit la méthode spéciale __len__() Nous pouvons définir la longueur de l'objet en implémentant cette méthode dans une classe personnalisée. La méthode
__len__() est une méthode spéciale utilisée pour renvoyer la longueur d'un objet. Il accepte un paramètre self, qui représente un objet instance de la classe. En définissant cette méthode dans la classe, nous pouvons laisser la fonction len() obtenir correctement la longueur de l'objet.
Voici un exemple de code :
class MyClass:
def __init__(self, data): self.data = data def __len__(self): return len(self.data)
obj = MyClass([1, 2, 3, 4, 5])
print(len(obj))
Dans l'exemple de code ci-dessus, nous A La classe MyClass est définie, qui contient des données d'attribut. Nous définissons la longueur de l'objet en implémentant la méthode __len__() dans la classe. Dans la méthode __len__(), nous utilisons la fonction len() pour obtenir la longueur de self.data et l'utiliser comme valeur de retour.
Ensuite, nous avons créé un objet instance obj de la classe MyClass et passé une liste contenant 5 éléments en paramètre au constructeur de cet objet. Enfin, nous utilisons la fonction len() pour obtenir la longueur de l'objet obj et imprimer le résultat.
Exécutez le code ci-dessus, le résultat de sortie est 5. Cela montre que nous avons utilisé avec succès la méthode __len__() pour définir la longueur de l'objet obj.
En plus de la fonction len(), certaines autres fonctions et méthodes intégrées peuvent également utiliser la méthode __len__() pour obtenir la longueur d'un objet. Par exemple, nous pouvons utiliser la fonction sum() pour calculer la somme des éléments d'un objet, et nous utiliserons également la méthode __len__().
Voici un exemple de code :
class MyList:
def __init__(self, data): self.data = data def __len__(self): return len(self.data) def __getitem__(self, index): return self.data[index] def __setitem__(self, index, value): self.data[index] = value def __delitem__(self, index): del self.data[index] def __iter__(self): return iter(self.data)
my_list = MyList([1, 2, 3, 4, 5])
print(len(my_list))
print(sum(my_list))
Dans l'exemple de code ci-dessus, nous avons défini une classe MyList, qui contient des données d'attribut. En plus d'implémenter la méthode __len__(), nous implémentons également des méthodes telles que __getitem__(), __setitem__(), __delitem__() et __iter__(), afin que les objets puissent être indexés, attribués, supprimés et itérés comme une liste.
Dans la méthode __len__(), nous utilisons également la fonction len() pour obtenir la longueur de self.data.
Ensuite, nous avons créé un objet instance my_list de la classe MyList et passé une liste contenant 5 éléments en paramètre au constructeur de cet objet. Enfin, nous utilisons les fonctions len() et sum() pour obtenir la longueur et la somme de l'objet my_list et imprimer les résultats.
Exécutez le code ci-dessus, les résultats de sortie sont 5 et 15. Cela montre que nous avons utilisé avec succès la méthode __len__() pour définir la longueur de l'objet my_list et que nous pouvons également obtenir correctement la longueur de l'objet en utilisant d'autres fonctions et méthodes intégrées.
Pour résumer, en implémentant la méthode __len__(), nous pouvons définir correctement la longueur de l'objet dans la classe personnalisée. De cette façon, non seulement la fonction len() peut obtenir correctement la longueur de l'objet, mais également certaines autres fonctions et méthodes intégrées peuvent également obtenir correctement la longueur de l'objet lorsqu'elles sont utilisées. Dans le même temps, vous pouvez également personnaliser la méthode de définition de la longueur de l'objet en fonction de vos propres besoins, rendant la longueur de l'objet flexible et diversifiée.
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!