使用Python -我有一个接受数字矩阵的类,我需要使用递归打印矩阵,它一遍又一遍地打印第一个数组。
这是我写的代码
class Matrix:
def __init__(self,mtx):
self.mtx = mtx
def PrintMat(self,mtx):
if len(self.mtx)==1:
print(self.mtx[0])
else:
print(self.mtx[0])
self.PrintMat(self.mtx[1:])
def properties(self):
print(self.mtx)
matrix = Matrix(([1,2,3],[2,3,4]))
matrix.PrintMat(matrix)
2条答案
按热度按时间w8ntj3qf1#
函数
PrintMat
使用类变量而不是其参数。试试看:
pcww981p2#
你不应该传递一个
mtx
参数--使用self.mtx
。另外,如果你的矩阵为空(索引错误)或太长(超过递归深度),你会遇到问题。你甚至可以考虑为你的类创建一个
__str__
或__repr__
方法,将矩阵作为字符串返回,这样你就可以打印它了,或者如果每一行足够长,就使用pprint.pprint将矩阵打印成多行。