我有一種方法來實現rmul,使它在兩個方向工作?我使用mul將元素R3中的兩個向量a和b逐個元素相乘。後來我想用一個像2 * a和* 2這樣的運算符將每個元素乘以一個數字。貫徹__rmul__從雙方,python
class R3(object):
def __init__(self,an_array):
self.a = an_array # of length 3
self.s = 3
def __mul__(self,that):
tmp = [0]*self.s
for i in range(self.s):
tmp[i] = self.a[i]*that.a[i]
return self.__class__(tmp)
def __rmul__(self,that):
tmp = [0]*self.s
for i in range(self.s):
tmp[i] = self.a[i]*that
return self.__class__(tmp)
所以這適用於a * b,b * a,2 * a,但不是* 2!
請回溯? –
只需使用numpy ndarrays。他們已經做了這些東西。 – wim
文件 「」,第1行,在 一個* 2 文件 「C:/Users/Hossein/Documents/R3.py」,第16行,在__mul__ TMP [I ] = self.a [i] * that.a [i] AttributeError:'int'object has no attribute'a' –