Maison >développement back-end >Tutoriel Python >Pourquoi les méthodes de mutation de liste Python renvoient-elles « Aucun » ?
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)
Cela équivaut à :
x.compress() x.chop(y) x.sort(z)
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()
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!