renvoyer aucun Python

La méthode Python append() renvoie une valeur None. En effet, l’ajout d’un élément à une liste met à jour une liste existante. Il n’en crée pas de nouveau.

Si vous essayez d’attribuer le résultat de la méthode append() à une variable, vous rencontrez une "TypeError : ‚ÄòNoneType‚Äô l’objet n’a pas d’attribut ‚Äòappend‚Äô‚" error.

Dans ce guide, nous expliquons ce que signifie cette erreur, pourquoi elle est générée et comment vous pouvez la résoudre, en faisant référence à un exemple.

TypeError : ‚ÄòNoneType‚Äô l’objet n’a pas d’attribut ‚Äòappend‚Äô

En Python, c’est une convention que les méthodes qui modifient les séquences renvoient None. La raison en est que renvoyer une nouvelle copie de la liste serait sous-optimal du point de vue des performances lorsque la liste existante peut simplement être modifiée.

Parce que append() ne crée pas de nouvelle liste, il est clair que la méthode va muter une liste existante. Cela vous évite d’ajouter un élément à une liste existante par accident.

Une erreur courante des codeurs est d’attribuer le résultat de la méthode append() à un nouveau liste. Cela ne fonctionne pas car append() modifie une liste existante. append() ne génère pas de nouvelle liste à laquelle vous pouvez affecter une variable.

Un exemple de scénario

Ensuite, nous construisons un programme qui permet un bibliothécaire ajoute un livre à une liste de notices. Cette liste de notices contient des informations sur l’auteur d’un livre et le nombre d’exemplaires disponibles.

Commençons par définir une liste de livres :

81 % des les participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

La liste des livres contient un dictionnaire . Un dictionnaire stocke des informations sur un livre spécifique. Nous ajoutons un enregistrement à cette liste de livres :

Nos "livres‚" list contient maintenant deux enregistrements. Ensuite, nous demandons à l’utilisateur des informations sur un livre qu’il souhaite ajouter à la liste :

Maintenant que nous avons ces informations, nous pouvons procéder à l’ajout d’un enregistrement à notre liste de livres. Nous pouvons le faire en utilisant la méthode append() :

Nous avons ajouté un nouveau dictionnaire aux "livres‚" liste. Nous avons converti la valeur de "disponible" à un entier dans notre dictionnaire. Nous attribuons le résultat de la méthode append() aux "books‚" variable. Enfin, nous imprimons la nouvelle liste de livres sur la console :

Exécutons notre code et voyons ce qui se passe :

Notre code nous demande avec succès d’entrer des informations sur un livre. Lorsque notre code essaie d’ajouter le livre à notre liste de livres, une erreur est renvoyée.

La solution

Notre code renvoie une erreur car nous avons attribué le résultat d’un append() à une variable. Jetez un ≈ìil au code qui ajoute Twilight à notre liste de livres :

Ce code modifie la valeur de "books" à la valeur renvoyée par la méthode append(). append() renvoie une valeur None. Cela signifie que "books‚" devient égal à None.

Lorsque nous essayons d’ajouter le livre sur lequel un utilisateur a écrit dans la console à la liste "books", notre code renvoie une erreur. "books" est égal à None et vous ne pouvez pas ajouter de valeur à une valeur None.

Pour résoudre cette erreur, nous devons supprimer l’opérateur d’affectation partout o√π nous utilisons la méthode append() :

Nous avons supprimé le "books = ‚" de chacune de ces lignes de code. Lorsque nous utilisons la méthode append(), un dictionnaire est ajouté aux livres. Nous n’attribuons pas la valeur des "livres" à la valeur renvoyée par append().

Exécutons à nouveau notre code :

Notre code ajoute avec succès une entrée de dictionnaire pour le livre Orgueil et Préjugés à notre liste de livres.

Conclusion

La "TypeError : ‚ÄòNoneType‚Äô l’objet n’a pas d’attribut ‚Äòappend‚Äô‚" erreur est renvoyée lorsque vous utilisez l’opérateur d’affectation avec la méthode append().

Pour résoudre cette erreur, assurez-vous de ne pas essayer d’affecter le résultat de la append() à une liste. La méthode append() ajoute un élément à une liste existante. La méthode renvoie None, pas une copie d’une liste existante.

Vous êtes maintenant prêt à résoudre ce problème Python courant comme un professionnel !