Home  >  Article  >  Backend Development  >  How to Customize the String Representation of a Class in Python?

How to Customize the String Representation of a Class in Python?

Susan Sarandon
Susan SarandonOriginal
2024-11-11 04:16:02295browse

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn