Python 在类的实例中,可以使用从一个方法返回的值作为调用另一个方法的参数吗

Python 在类的实例中,可以使用从一个方法返回的值作为调用另一个方法的参数吗,python,python-3.x,class,oop,instance,Python,Python 3.x,Class,Oop,Instance,您好,我刚刚启动了OOP,所以我有一个关于使用方法的返回值来代替作为“self”传递给其他方法的“instance name”的问题 我包含了对矩阵问题进行计算的其余代码,但我只关注其中的“self.reduce_matrix(1,j+1)).determinate()”部分。我需要获取一个矩阵(这是一个列表列表,例如[1,2,3],[4,5,6]),并在矩阵中的每列执行“reduce_matrix”方法1次,每次,“行列式(self)”方法都会传入从另一个方法返回的值。当我运行它时,它会说“l

您好,我刚刚启动了OOP,所以我有一个关于使用方法的返回值来代替作为“self”传递给其他方法的“instance name”的问题

我包含了对矩阵问题进行计算的其余代码,但我只关注其中的“self.reduce_matrix(1,j+1)).determinate()”部分。我需要获取一个矩阵(这是一个列表列表,例如[1,2,3],[4,5,6]),并在矩阵中的每列执行“reduce_matrix”方法1次,每次,“行列式(self)”方法都会传入从另一个方法返回的值。当我运行它时,它会说“list对象没有属性“determinate”,因为我不能像通常那样将“self”传递给determinate方法-->“self.determinate(self)”


非常感谢
reduce\u matrix
中的任何建议:

  • M
    创建为
    M=A([row[:j-1]+row[j:]表示临时行])
  • 不要返回
    M.matrix
    ,而是返回
    M
    本身

也就是说,所有类型的矩阵运算都有。

我真的被这个问题弄糊涂了。您是否编辑了其中的代码以消除错误?这个网站上的问题不应该是这样的。请务必在您自己的系统上修复代码,但不要更改问题以消除您请求帮助的错误!抱歉,我只是调整了一部分代码,这部分代码不是我遇到问题的部分,因为下面回答的人指出我写错了一部分,所以我认为如果我更正它,人们会更清楚。非常感谢,我甚至不知道库,直到你提到一个,我才查阅了它,这让事情变得容易多了。
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