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)".