Customizing Class Instance Representation When Printing
When attempting to print an instance of a class, you may encounter a default representation such as the memory address. To customize the printed appearance of your class instances, delve into the concepts of __str__ and __repr__.
The __str__ Method
By defining a __str__ method within your class, you can control how instances are represented when printed. This method should return a string containing the desired display text. For example:
>>> class Test: >>> def __init__(self): >>> self.a = 'foo' >>> def __str__(self): >>> return f"Test with a: {self.a}"
Now, when printing an instance of this class, you'll get a custom string representation:
>>> t = Test() >>> t Test with a: foo >>> print(t) Test with a: foo
The __repr__ Method
The __repr__ method, when defined, takes precedence over __str__ when printing using the repr() function or in interactive prompts. It aims to provide a more detailed representation, suitable for debugging or reconstruction. If you define __repr__ without __str__, it will also serve as the printed representation.
For instance:
>>> class Test: >>> def __init__(self): >>> self.a = 'foo' >>> def __repr__(self): >>> return f"Test(a={self.a})"
When printing:
>>> t = Test() >>> t Test(a='foo') >>> repr(t) "Test(a='foo')"
Summary:
To customize the printed representation of your class instances, define a __str__ method for the desired display text or a __repr__ method for a detailed representation. If both are defined, __str__ is used for printing while __repr__ is used for the repr() function.
The above is the detailed content of How can I customize the output of printing a class instance in Python?. For more information, please follow other related articles on the PHP Chinese website!