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)

Ответы (0 шт):