3.7 UserString --- Classe pour encapsuler des objets chaîne de caractères

Ce module définit une classe qui encapsule des objets chaîne de caractères. C'est une classe de base utile pour vos propres classes de genre chaîne, qui peuvent en hériter et surcharger les méthodes existantes ou en ajouter de nouvelles. De cette façon on peut ajouter de nouveaux comportements aux chaînes.

Il faut noter que ces classes sont très inefficaces comparées aux vrais objet chaîne ou Unicode; c'est notamment le cas pour MutableString.

Le module UserString définit les classes suivantes:

UserString([sequence])
Classe qui simule un objet chaîne de caractères ou Unicode. Le contenu de l'instance est conservé dans un objet chaîne ou Unicode ordinaires, qui est accessible par l'attribut data des instances de UserString. Le contenu de l'instance est initialisé à une copie de sequence. sequence peut être soit une chaîne de caractères ou Unicode ordinaires, une instance de UserString (ou d'une sous-classe) ou une séquence arbitraire qui peut être convertie en une chaîne de caractères en utilisant la fonction intégrée str().

MutableString([sequence])
Cette classe est dérivée de la classe UserString ci-dessus et redéfinit les chaînes pour qu'elles deviennent mutables. Les chaînes mutables ne peuvent pas servir de clés de dictionnaires, parce que les dictionnaires requièrent des objets immuables comme clés. L'intention principale est de servir d'exemple éducatif pour l'héritage et la nécessité d'enlever (de surclasser) la méthode __hash__() pour capturer des tentatives de se servir d'un objet mutable comme clé de dictionnaire, ce qui serait autrement très générateur d'erreurs difficiles à dénicher.

En plus de supporter les méthodes et les opérations des objets chaîne de caractères et Unicode (voir la section 2.1.5.1, ``Méthodes des Chapines de Caractères''), les instances de UserString fournissent l'attribut suivant:

data
Un objet Python chaîne de caractères ou Unicode qui sert à stocker le contenu de la classe UserString.