Printing a list that contains your objects will call their __repr__, so you can either also define __repr__ to return __str__s result, or call print(*bracket) to unpack the list in the print call which uses their __str__ function: