Maison > développement back-end > Tutoriel Python > Pourquoi les méthodes de modification de liste de Python renvoient-elles « Aucun » ?

Pourquoi les méthodes de modification de liste de Python renvoient-elles « Aucun » ?

Susan Sarandon
Libérer: 2024-12-20 18:29:13
original
835 Les gens l'ont consulté

Why Do Python's List Modification Methods Return `None`?

Pourquoi les méthodes de liste Python ne renvoient-elles aucun au lieu de la liste ?

La modification des méthodes de liste telles que l'ajout, le tri, l'extension, la suppression, l'effacement et l'inversion renvoie généralement Aucun à la place que la liste modifiée elle-même. Cette décision de conception est ancrée dans le principe primordial de Python selon lequel les fonctions qui modifient les objets sur place ne doivent renvoyer aucun.

La justification

Selon Guido van Rossum, l'architecte Python , ce choix sert à souligner qu'un nouvel objet n'est pas créé. En ne renvoyant pas la liste modifiée, cela décourage l'utilisation d'effets secondaires enchaînés, tels que :

x.compress().chop(y).sort(z)
Copier après la connexion

qui peuvent prêter à confusion et gêner la lisibilité. Au lieu de cela, Python préfère la forme plus explicite :

x.compress()
x.chop(y)
x.sort(z)
Copier après la connexion

Cette séparation indique clairement que chaque méthode agit sur le même objet.

Opérations de chaînage

Côté chaînage -les appels à effet sont déconseillés, Python l'autorise pour les opérations qui renvoient de nouvelles valeurs, telles que le traitement des chaînes opérations :

y = x.rstrip("\n").split(":").lower()
Copier après la connexion

Considérations

Cette décision de conception présente des inconvénients. Cela empêche le « chaînage » intuitif du traitement de liste, tel que :

mylist.reverse().append('a string')[:someLimit]
Copier après la connexion

Des alternatives telles que la compréhension de liste et d'autres structures de données peuvent fournir des fonctionnalités similaires sans enfreindre la convention « aucun retour d'effet secondaire ».

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal