Когда вы пишете собственный метод __repr__ для какого-то объекта, обычно нужно включать представление его атрибутов.
Это делается с помощью нотации !r:
class Pair:
def __init__(self, left, right):
self.left = left
self.right = right
def __repr__(self):
class_name = type(self).__name__
return f'{class_name}({self.left!r}, {self.right!r})'
👉 @BookPython