class A:
def __init__(self, matrix=[]):
self.matrix = matrix
def dimension(self):
return len(self.matrix), len(self.matrix[0])
def reduce_matrix(self, i, j):
temp = self.matrix[:i-1] + self.matrix[i:]
M = A([row[:j-1] + row[j:] for row in temp])
return M
def determinant(self):
(nrows, ncols) = self.dimension()
if nrows != ncols:
return ("Cannot find determinant of non-square matrix.")
elif nrows == 1:
return self.matrix[0][0]
else:
M = A(sum([ ((-1)**j) * self.matrix[0][j] * self.reduce_matrix(1,
j+1).determinant() for j in range(ncols) ]))
return M
Здравствуйте, я только что запустил ООП, поэтому у меня возник вопрос относительно использования возвращенного значения метода вместо «имени экземпляра», которое передается как «self» для какого-то другого метода.
Я включил остальную часть кода, который просто выполняет вычисления для матричной задачи, но я сосредотачиваюсь только на « self.reduce_matrix (1, j + 1)) .определитель ()» немного из этого. Мне нужно взять матрицу (которая представляет собой список списков, например [[1,2,3], [4,5,6]]), и выполнить метод «redu_matrix» 1 раз на столбец в матрице, и каждый раз метод «определитель (сам)» передает значение, возвращенное другим методом. Когда я запускаю его, он говорит, что «объект списка не имеет атрибута« определитель »», потому что я не могу передать «я» методу определителя, как я обычно это делаю -> «self.determinant (self)»
Любые предложения будут очень признательны