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.
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)
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)
Cette séparation indique clairement que chaque méthode agit sur le même objet.
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()
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]
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!