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

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

Susan Sarandon
Release: 2024-11-11 04:16:02
Original
382 people have browsed it

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
Copy after login

The default string representation of this class is:

>>> str(foo)
"<class '__main__.foo'>"
Copy after login

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)
Copy after login

Output:

Customized class!
Copy after login
Copy after login

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)
Copy after login

Output:

Customized class!
Copy after login
Copy after login

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!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template