如何重载加法、减法和乘法运算符,以便我们可以添加、减去和相乘两个大小不同或相同的向量?例如,如果向量的大小不同,我们必须能够按照最小向量大小添加、减去或相乘两个向量。
我已经创建了一个函数,允许您修改不同的向量,但现在我正在努力重载运算符,并且不知道从哪里开始。我将在下面粘贴代码。有什么想法吗?
def __add__(self, y):
self.vector = []
for j in range(len(self.vector)):
self.vector.append(self.vector[j] + y.self.vector[j])
return Vec[self.vector]
def __add__(self, x, y)
会有两个参数吗? - user3014014def __add__(self, y)
。self
是+
的左操作数。 - jwodderfractions
模块。注意顶部的源链接。这是因为它旨在用作编写自己的数字类的示例代码。它看起来可能比你需要的要复杂得多,但如果你实际上想要模拟所有运算符,并能够使用标量值(所以myvec * 2
或2 * myvec
可以工作),等等,那么“复杂”的方式实际上比复制和粘贴所有琐碎的部分几十次更容易。 - abarnert__truediv__
。更多信息请参见https://docs.python.org/3/reference/datamodel.html#emulating-numeric-types。 - cowlinator