Python类中递归的语法

Python类中递归的语法,python,recursion,Python,Recursion,我正在学习Python,正在课堂上努力学习self的语法。使用此代码 class Matrix( object ): def __init__( self, arrays ): # expects array of array self.arrays = arrays self.num_columns = len( self.arrays[ 0 ] ) def get_num_cols( self ): return self.

我正在学习Python,正在课堂上努力学习self的语法。使用此代码

class Matrix( object ):

    def __init__( self, arrays ): # expects array of array
        self.arrays = arrays
        self.num_columns = len( self.arrays[ 0 ] )

    def get_num_cols( self ):
        return self.num_columns

    def get_minor( self, r1, r2 ):
        return [ row[ :r2 ] +  row[ r2 + 1: ] for row in ( self.arrays[ :r1 ] + self.arrays[ r1 + 1: ] ) ] 

    def determinant( self ):

        determinant = 0
        for c in range( self.get_num_cols() ):
            determinant += ( ( -1 ) ** c ) * self.arrays[ 0 ][ c ] * self.determinant( self.get_minor( 0, c ) )

        return determinant
它快窒息了

...self.determinant( self.get_minor( 0, c ) )
我明白为什么行列式方法只需要self,就得到了另一个参数。没有封装在类中的代码(没有self)运行良好,但在类中我需要使用那个讨厌的self。在C++中,我只会研究底层数据结构。所以我基本上知道问题是什么,但我看不到解决办法。有人能在Python类中使用这种递归吗

提前谢谢

self.determinant( self.get_minor( 0, c ) )
可能是:

Matrix(self.get_minor( 0, c )).determinant()
这将
get_minor
返回的嵌套列表转换为
矩阵
,然后调用其
行列式
方法。如果
get\u minor
返回一个
矩阵
,则代码为:

self.get_minor( 0, c ).determinant()
可能是:

Matrix(self.get_minor( 0, c )).determinant()
这将
get_minor
返回的嵌套列表转换为
矩阵
,然后调用其
行列式
方法。如果
get\u minor
返回一个
矩阵
,则代码为:

self.get_minor( 0, c ).determinant()

向类中的“行列式”方法添加另一个参数。def行列式(self,your_arg):我不理解这个问题。您有一个不接受任何参数的函数(隐式的
self
除外),并且您使用参数调用它。这在Python中不起作用,它也不能在C++中工作。你必须下定决心,
行列式
函数是否接受参数?在类中的“行列式”方法中添加另一个参数。def行列式(self,your_arg):我不理解这个问题。您有一个不接受任何参数的函数(隐式的
self
除外),并且您使用参数调用它。这在Python中不起作用,它也不能在C++中工作。您必须做出决定,
行列式
函数是否接受参数?