Python类中递归的语法
我正在学习Python,正在课堂上努力学习self的语法。使用此代码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.
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++中工作。您必须做出决定,行列式
函数是否接受参数?