Maison >développement back-end >Tutoriel Python >Comment puis-je personnaliser le résultat de l'impression d'une instance de classe en Python ?
Personnalisation de la représentation de l'instance de classe lors de l'impression
Lorsque vous essayez d'imprimer une instance d'une classe, vous pouvez rencontrer une représentation par défaut telle que la mémoire adresse. Pour personnaliser l'apparence imprimée de vos instances de classe, plongez dans les concepts de __str__ et __repr__.
La méthode __str__
En définissant une méthode __str__ au sein de votre classe, vous peut contrôler la manière dont les instances sont représentées lors de l'impression. Cette méthode doit renvoyer une chaîne contenant le texte d’affichage souhaité. Par exemple :
>>> class Test: >>> def __init__(self): >>> self.a = 'foo' >>> def __str__(self): >>> return f"Test with a: {self.a}"
Maintenant, lors de l'impression d'une instance de cette classe, vous obtiendrez une représentation sous forme de chaîne personnalisée :
>>> t = Test() >>> t Test with a: foo >>> print(t) Test with a: foo
La méthode __repr__
La méthode __repr__, lorsqu'elle est définie, a priorité sur __str__ lors de l'impression à l'aide de la fonction repr() ou dans des invites interactives. Il vise à fournir une représentation plus détaillée, adaptée au débogage ou à la reconstruction. Si vous définissez __repr__ sans __str__, il servira également de représentation imprimée.
Par exemple :
>>> class Test: >>> def __init__(self): >>> self.a = 'foo' >>> def __repr__(self): >>> return f"Test(a={self.a})"
Lors de l'impression :
>>> t = Test() >>> t Test(a='foo') >>> repr(t) "Test(a='foo')"
Résumé :
Pour personnaliser la représentation imprimée de vos instances de classe, définissez une méthode __str__ pour l'objet souhaité afficher du texte ou une méthode __repr__ pour une représentation détaillée. Si les deux sont définis, __str__ est utilisé pour l'impression tandis que __repr__ est utilisé pour la fonction repr().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!