How to override 'to string' representation of a Class Object?
Python - Override 'to string' Representation of a Class Object
To override string representation of a class object in Python, define __str__(self)
function and return the required string.
Example
Let us consider a class named Fruit
as shown in the following without overriding __str__(self)
function.
class Fruit:
name = ''
quantity = ''
description = ''
def __init__(self, name, quantity, description):
self.name = name
self.quantity = quantity
self.description = description
In the following example, we create an object of type Fruit
, and print the object to console.
Python Program
class Fruit:
name = ''
quantity = ''
description = ''
def __init__(self, name, quantity, description):
self.name = name
self.quantity = quantity
self.description = description
apple = Fruit('Apple', '58', 'Good for health.')
print(apple)
Output
<__main__.Fruit object at 0x1025abc10>
The string representation is difficult to read.
Now, we shall override the __str__(self)
function and return a string that specifies the attributes in detail.
Python Program
class Fruit:
name = ''
quantity = ''
description = ''
def __init__(self, name, quantity, description):
self.name = name
self.quantity = quantity
self.description = description
def __str__(self):
details = ''
details += f'Name : {self.name}\n'
details += f'Quantity : {self.quantity}\n'
details += f'Description : {self.description}\n'
return details
apple = Fruit('Apple', '58', 'Good for health.')
print(apple)
Output
Name : Apple
Quantity : 58
Description : Good for health.
Summary
In this Python Classes and Objects tutorial, we learned how to override __str__() function in a class definition to change the string representation of a class object.