Point(x, y) with __str__ returning the friendly '(x, y)' and __repr__ returning the unambiguous, eval-able 'Point(x=x, y=y)'. print() uses str; the interactive shell and containers use repr — implement both to see the difference.str(Point(1, 2))
'(1, 2)'
The human-friendly form.
repr(Point(1, 2))
'Point(x=1, y=2)'
The developer-facing form.
Two small f-string methods.
Lists of Points display using __repr__ — worth mentioning aloud.