Python, перегрузка оператора "-" матриц
У меня получилось перезагрузить оператор "+", а вот почему не выходит с "-" не понимаю. Выдаёт копию m1. (numpy использовать нельзя)
class Matrix(object):
def __init__(self, matrix):
self.matrix = matrix
self.sum1, self.sum2 = 0, 0
def __str__(self):
return '\n'.join([''.join(['%d\t' % i for i in row]) for row in self.matrix])
def __len__(self):
return len(self.matrix)
def __add__(self, other):
n = self.matrix.__len__()
A = self.matrix
B = other.matrix
C = A
for i in range(n):
for j in range(n):
C[i][j] = A[i][j] + B[i][j]
return '\n'.join([''.join(['%d\t' % i for i in row]) for row in C])
def __sub__(self, other):
n = self.matrix.__len__()
A = self.matrix
B = other.matrix
C = A
for i in range(n):
for j in range(n):
C[i][j] = A[i][j] - B[i][j]
return '\n'.join([''.join(['%d\t' % i for i in row]) for row in C])
m1 = Matrix([[5, 3, 1, 1, 1], [-1, 2, 2, 1, 1], [4, 1, -1, 1, 1], [1, 1, 6, 1, 1], [4, 1, -1, 1, 1]])
m2 = Matrix([[2, 3, 5, 1, 1], [-1, 7, 2, 5, 1], [4, 1, -3, 6, 1], [1, 4, 6, 1, 0], [4, 1, -1, 8, 1]])
print("A + B =", "\n", m1 + m2)
print("A - B =", "\n", m1 - m2)