Nouvelles méthodes removeprefix() et removesuffix() pour les objets de chaînes de caractères en Python
Il s’agit d’une proposition visant à ajouter deux nouvelles méthodes, removeprefix()
et removesuffix()
, aux API des différents objets de chaînes de caractères de Python. Ces méthodes supprimeraient un préfixe ou un suffixe (respectivement) d’une chaîne de caractères, s’ils sont présents. Elles seraient ajoutées aux objets Unicode str (L'ajout d'objets Unicode str se réfère à la possibilité d'ajouter des instances de la classe str (qui représentent des chaînes de caractères Unicode) à d'autres objets str.)
, binaires bytes
et bytearray
, ainsi qu’aux objets collections.UserString
.
La motivation derrière cette proposition réside dans les problèmes récurrents rencontrés par les utilisateurs concernant les méthodes existantes str.lstrip()
et str.rstrip()
. Ces utilisateurs s’attendent souvent au comportement de removeprefix()
et removesuffix()
, mais sont surpris que le paramètre pour lstrip()
soit interprété comme un ensemble de caractères, et non comme une sous-chaîne. Ces nouveaux ajouts permettraient une redirection plus propre des utilisateurs vers le comportement souhaité.
Des exemples de la bibliothèque standard Python montrent comment ces méthodes proposées peuvent rendre le code moins fragile, plus performant et plus descriptif. Par exemple, la méthode strip_quotes()
pourrait être simplifiée en utilisant removeprefix('"').removesuffix('"')
.
Plusieurs autres noms de méthodes ont été proposés, mais ils ont été rejetés en faveur de removeprefix()
et removesuffix()
pour des raisons de clarté et de cohérence avec les autres méthodes de la classe str
.
Il est important d’enseigner aux utilisateurs la différence entre lstrip/rstrip
et removeprefix/removesuffix
pour éviter toute confusion potentielle.
Exemple de code
Ces exemples montrent comment les méthodes removeprefix()
et removesuffix()
peuvent être utilisées pour supprimer respectivement un préfixe et un suffixe d’une chaîne de caractères.
Pour plus de détails, consultez le lien suivant
https://peps.python.org/pep-0616/#abstract
date de publication le 24 décembre 2023