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

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

Mary-Kate Olsen
Libérer: 2024-12-28 12:49:12
original
751 Les gens l'ont consulté

Why Do Python List Mutation Methods Return `None`?

Pourquoi les mutations de liste ne renvoient aucun en Python

Lors de la manipulation de listes Python avec des méthodes telles que l'ajout, le tri, l'extension, la suppression, l'effacement et l'inversion, on rencontre un comportement curieux : ces opérations modifient la liste sur place et renvoient None au lieu de la liste mise à jour.

Ce choix de conception a été motivé par un principe fondamental en Python : les fonctions qui mutent un l'objet sur place doit renvoyer Aucun. Cela sert à souligner le fait qu'un nouvel objet n'est pas créé lors de telles opérations.

Guido van Rossum, le créateur de Python, explique son raisonnement en détail sur la liste de diffusion Python-Dev. Il s'oppose à l'enchaînement des effets secondaires sur un seul objet de manière concise, car cela peut obscurcir la compréhension par le lecteur de l'intention du code. Par exemple, considérons le code suivant :

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

Cela équivaut à :

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

Van Rossum soutient que la deuxième forme est plus claire, car elle montre explicitement que chaque opération est appliquée à la même variable, x.

En revanche, l'utilisation du chaînage est réservée aux opérations qui renvoient de nouvelles valeurs, comme le traitement de chaînes opérations :

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

Bien que certains modules de bibliothèque, comme pstat, puissent encourager l'enchaînement d'appels à effets secondaires, Van Rossum affirme que cette pratique est déconseillée pour les nouveaux ajouts à la bibliothèque standard.

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