Drawing Eyes to Understand Object Aliasing

The problem is that we thought we had two distinct circles by way of the statement right_eye = left_eye, but we just named the left eye with a second name, and accidentially moved the left eye as a result.

Aliasing is the idea of giving an object multiple names (identifiers). In our case, we gave an instance of Circle two names: left_eye and right_eye; however, we expected two unique instances of the Circle class but that didn't happen.

What does equality mean here? == usually means 'value equality', but our Circle doesn't inform Python what it means to compare the two objects of the type Circle, so it falls back to copmparing "object identity" - "do they have the same ID?"

How to do this correctly

Move the left eye to the correct position

More identity testing