repr(obj)
intégré de Python La fonction renvoie la représentation sous forme de chaîne standard de l'objet fourni. Cela inclut souvent le type et l'adresse mémoire de l'objet, faute d'informations supplémentaires. Par exemple, la représentation sous forme de chaîne renvoyée peut être '<main.Car object at 0x000001F66D11DBE0>'
pour un objet personnalisé de type Car
. La fonction appelle en interne la méthode obj.__repr__()
qui est défini par défaut pour tous les objets.
Voici un exemple :
>>> class Car: pass >>> repr(Car()) '<__main__.Car object at 0x000001F66D11DBE0>'
Syntaxe repr()
Syntax:
repr(object) # --> Returns standard (canonical) representation of an object.
Arguments | object | Objet pour lequel la représentation sous forme de chaîne doit être renvoyée. |
Valeur de retour | string | Représentation sous forme de chaîne de l'objet. |
Représentation vidéo()
Exemples d'utilisation repr()
Le code suivant vous montre comment utiliser le repr(x)
fonction sur la façon de déterminer la représentation sous forme de chaîne de certains objets Python de base :
>>> repr(42) '42' >>> repr('42') "'42'" >>> repr([1, 2, 3]) '[1, 2, 3]' >>> repr({'Alice': 'Bob', 'Bob': 'Alice'}) "{'Alice': 'Bob', 'Bob': 'Alice'}" >>> repr(object) "<class 'object'>" >>> repr(repr) '<built-in function repr>'
Voici comment définir la représentation sous forme de chaîne de vos propres objets personnalisés :
class Car: def __repr__(self): return 'black tesla' print(repr(Car())) # black tesla
Mais avant de continuer, je suis ravi de vous présenter mon nouveau livre Python Python One-Liners (Lien Amazon).
Si vous aimez les one-liners, vous allez adorer le livre. Il vous apprendra tout ce qu'il y a à savoir sur une seule ligne de code Python. Mais c'est aussi une introduction à l'informatique , science des données, apprentissage automatique et algorithmes. L'univers en une seule ligne de Python !
Le livre est sorti en 2020 avec l'éditeur de livres de programmation de classe mondiale NoStarch Press (San Francisco).
Lien :https://nostarch.com/pythononeliners
Comment implémenter votre propre représentation sous forme de chaîne pour un objet personnalisé
Pour implémenter votre propre représentation sous forme de chaîne lors de l'utilisation du repr(object)
fonction sur votre object
personnalisé , écrasez le object.__repr__()
méthode lors de la définition de la classe et renvoie la représentation sous forme de chaîne souhaitée de l'objet donné. Notez que s'il y a un __str__()
méthode définie, elle prime sur le __repr__()
méthode qui n'est utilisée que comme solution de secours implémentée par défaut pour n'importe quel objet.
class Car: def __init__(self, color, brand): self.color = color self.brand = brand def __str__(self): return 'Your car has color ' + self.color + ' and brand ' + self.brand def __repr__(self): return '123' porsche = Car('black', 'porsche') tesla = Car('silver', 'tesla') print(str(porsche)) print(str(tesla))
La sortie est :
Your car has color black and brand porsche Your car has color silver and brand tesla
Notez comment le __str__
la méthode a priorité sur le __repr__
méthode. Mais si vous ignorez la définition du __str__
méthode, il prendra la chaîne renvoyée par le __repr__
méthode :
class Car: def __init__(self, color, brand): self.color = color self.brand = brand def __repr__(self): return '123' porsche = Car('black', 'porsche') tesla = Car('silver', 'tesla') print(str(porsche)) print(str(tesla))
La sortie est maintenant :
123 123
Résumé
repr(obj)
intégré de Python La fonction renvoie la représentation sous forme de chaîne standard de l'objet fourni.
Cela inclut souvent le type et l'adresse mémoire, faute d'informations supplémentaires sur l'objet.
Par exemple, le résultat peut être '<main.Car object at 0x000001F66D11DBE0>'
pour un objet personnalisé de type Car
.
>>> class Car: pass >>> repr(Car()) '<__main__.Car object at 0x000001F66D11DBE0>'
La fonction appelle en interne la méthode obj.__repr__()
qui est défini par défaut pour tous les objets.