【发布时间】:2014-01-10 03:23:48
【问题描述】:
如何重载点类的 + 运算符,使其与点对象或元组一起使用。
如果第二个操作数是一个点,该方法应该返回一个新的点,其 x 坐标是 操作数的 x 坐标之和,y 坐标也是如此。
如果第二个操作数是一个元组,该方法应该将元组的第一个元素添加到 x 坐标和第二个元素到 y 坐标,并返回一个新的 Point 与 结果。
到目前为止,我得到的只是点类:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
我仍在研究它,而且我是 python 新手,所以任何类型的想法都会有很大帮助。
【问题讨论】:
-
(a) 你可以让 Point 扩展元组,然后只使用索引。 (b) numpy 对向量有很好的支持,如果你开始在你的点上使用矩阵变换,这将有所帮助。 (c) 我通常会使用一个复数(例如
1 + 2j)作为二维点,尽管这取决于应用程序。 -
不相关的问题,但
Point继承自object和class Point(object):并为自己省去一些可能的麻烦。
标签: python python-2.7 tuples overloading