Book Image

Mastering Object-oriented Python

By : Steven F. Lott, Steven F. Lott
Book Image

Mastering Object-oriented Python

By: Steven F. Lott, Steven F. Lott

Overview of this book

Table of Contents (26 chapters)
Mastering Object-oriented Python
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Some Preliminaries
Index

The __repr__() and __str__() methods


Python has two string representations of an object. These are closely aligned with the built-in functions repr(), str(), print(), and the string.format() method.

  • Generally, the str() method representation of an object is commonly expected to be more friendly to humans. This is built by an object's __str__() method.

  • The repr() method representation is often going to be more technical, perhaps even a complete Python expression to rebuild the object. The documentation says:

    For many types, this function makes an attempt to return a string that would yield an object with the same value when passed to eval().

    This is built by an object's __repr__() method.

  • The print() function will use str() to prepare an object for printing.

  • The format() method of a string can also access these methods. When we use {!r} or {!s} formatting, we're requesting __repr__() or __str__(), respectively.

Let's look at the default implementations first.

The following is a simple class hierarchy...