Home > Article > Backend Development > How to Customize the String Representation of a Class in Python?
Custom String Representation for Classes in Python
Consider the following class:
class foo(object): pass
The default string representation of this class is:
>>> str(foo) "<class '__main__.foo'>"
To customize the string representation of the class itself (not instances of the class), utilize the metaclass concept. A metaclass is a class that creates other classes, allowing for the adjustment of their behavior.
Implement the __str__() or __repr__() methods within the class's metaclass. The __str__() method provides a readable string representation, while __repr__() offers an unambiguous representation.
class MC(type): def __repr__(self): return 'Customized class!' class C(object): __metaclass__ = MC print(C)
Output:
Customized class!
For Python 3, modify the code as follows:
class MC(type): def __repr__(self): return 'Customized class!' class C(object, metaclass=MC): pass print(C)
Output:
Customized class!
By implementing the __str__() or __repr__() methods in the metaclass, you can define a custom string representation that will be displayed when you print the class.
The above is the detailed content of How to Customize the String Representation of a Class in Python?. For more information, please follow other related articles on the PHP Chinese website!