Exercise

# Write a class from scratch

You are a Python developer writing a visualization package. For any element in a visualization, you want to be able to tell the position of the element, how far it is from other elements, and easily implement horizontal or vertical flip .

The most basic element of any visualization is a single point. In this exercise, you'll write a class for a point on a plane from scratch.

Instructions

**100 XP**

Define the class `Point`

that has:

*Two attributes,*- the coordinates of the point on the plane;`x`

and`y`

*A constructor*that accepts two arguments,`x`

and`y`

, that initialize the corresponding attributes. These arguments should have default value of`0.0`

;*A method*that`distance_to_origin()`

*returns*the distance from the point to the origin. The formula for that is \(\sqrt{x^2 + y^2}\).*A method*, that reflects the point with respect to the x- or y-axis:`reflect()`

- accepts one argument
`axis`

, - if
`axis="x"`

, it sets the`y`

(not a typo!) attribute to the negative value of the`y`

attribute, - if
`axis="y"`

, it sets the`x`

attribute to the negative value of the`x`

attribute, - for any other value of
`axis`

, prints an error message.

- accepts one argument

Note: *You can choose to use sqrt() function from either the numpy or the math package, but whichever package you choose, *

**don't forget to import it**before starting the class definition!

*To check your work, you should be able to run the following code without errors:*

```
pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())
```

*and return the output*

```
(-3.0,0.0)
5.0
```