31. Classes and dunders (double underscores)

Exploit dunders when doing object-oriented programming in Python. In particular, override the __str__ dunder to enable a printer friendly representation of the object.

31.1. Don’t do this

1class Student():
2    def __init__(self, first_name, last_name):
3        self.first_name = first_name
4        self.last_name = last_name
5
6student = Student('John', 'Doe')
7
8print(student)

31.2. Do this

 1class Student():
 2    def __init__(self, first_name, last_name):
 3        self.first_name = first_name
 4        self.last_name = last_name
 5
 6    def __str__(self):
 7        return f'{self.first_name} {self.last_name}'
 8
 9student = Student('John', 'Doe')
10
11print(student)