I'd like you to write a class representing a 3-dimensional point.

The Point class must accept 3 values on initialization (x, y, and z) and have x, y, and z attributes. It must also have a helpful string representation. Additionally, point objects should be comparable to each other (two points are equal if their coordinates are the same and not equal otherwise).

Example usage:

>>> p1 = Point(1, 2, 3)
>>> p1
Point(x=1, y=2, z=3)
>>> p2 = Point(1, 2, 3)
>>> p1 == p2
>>> p2.x = 4
>>> p1 == p2
>>> p2
Point(x=4, y=2, z=3)

If you finish the base exercise quickly, consider working through a bonus or two.

Bonus 1

This is just a preview of the problem statement.

This exercise includes 3 bonuses, 10 hint links, and automated tests.