从零编写一个类
您是一名开发可视化包的 Python 工程师。对于可视化中的任意元素,您希望能够得到该元素的位置、与其他元素的距离,并且可以轻松实现水平或垂直翻转。
任何可视化中最基础的元素是单个点。本练习中,您将从零开始为平面上的一个点编写一个类。
本练习是课程的一部分
Python 面向对象编程
练习说明
定义类 Point,其包含:
- 两个属性
x和y—— 表示该点在平面上的坐标; - 一个构造函数,接收两个参数
x和y,用于初始化对应的属性。这两个参数应有默认值0.0; - 方法
distance_to_origin(),返回该点到原点的距离,公式为 $\sqrt{x^2 + y^2}$。 - 方法
reflect(),用于相对于 x 轴或 y 轴翻转该点:- 接收一个参数
axis, - 若
axis="x",将y(不是笔误!)属性设置为y的相反数, - 若
axis="y",将x属性设置为x的相反数, - 若
axis为其他值,打印一条错误信息。
- 接收一个参数
注意:您可以选择使用 numpy 或 math 包中的 sqrt() 函数,但无论选择哪个包,开始定义类之前都要先导入它!
要检查您的实现,应该可以无错误地运行以下代码:
pt = Point(x=3.0)
pt.reflect("y")
print((pt.x, pt.y))
pt.y = 4.0
print(pt.distance_to_origin())
并得到如下输出:
(-3.0,0.0)
5.0
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Write the class Point as outlined in the instructions