3.21.1 Objets Repr
Les instances de Repr fournissent plusieurs membres qui
peuvent servir à définir des limites de taille pour les
représentations de différents types d'objets, et des méthodes
qui formatent des types d'objets spécifiques.
maxlevel- Limite la profondeur pour la création de représentations récursives.
La valeur par défaut est
6.
maxdict- maxlist
- maxtuple
- Limites sur le nombre d'entrées représentées pour le type d'objet. Les
valeurs par défaut sont
4 pour maxdict, 6 pour
les autres.
maxlong- Nombre maximum de caractères dans la représentation des entiers
longs. Si le nombre est trop grand, les chiffres du milieu ne sont
pas affichés. La valeur par défaut est
40.
maxstring- Limite le nombre de caractères pour la représentation d'une chaîne.
Notez que la représentation ``normale'' de la chaîne est utilisée
comme source de caractères: si des séquences échappées sont
nécessaires dans la représentation, celles-ci peuvent être
estropiées quand la représentation est raccourcie. Par défaut
30.
maxother- Cette limite sert à contrôler la taille des types d'objet pour
lesquels aucune méthode de formatage particulière n'est
disponible dans l'objet Repr. Elle est appliquée d'une
manière similaire à maxstring. La valeur par défaut est
20.
repr(obj)
- L'équivalent de la fonction intégrée repr() qui utilise
le formatage imposé par l'instance.
repr1(obj, niveau)
- Implémentation récursive utilisée par repr(). Se sert du
type de obj pour déterminer la méthode de formatage à appeler,
en lui passant obj et niveau. Les méthodes propres au
type doivent appeler repr1() pour réaliser un formatage
récursif, avec
niveau - 1 comme valeur de niveau
dans l'appel récursif.
repr_type(obj, niveau)
- Les méthodes de formatage pour des types spécifiques sont
implémentées comme des méthodes dont le nom est basé sur le
nom du type. Dans le nom de la méthode, type est
remplacé par
string.join(string.split(type(obj).__name__, '_').
L'aiguillage vers ces méthodes est géré par repr1().
Les méthodes propres à un type qui ont besoin de formater
récursivement une valeur doivent appeler
"self.repr1(subobj, niveau - 1)".