-1
我有一个Matrix
类:如何将列表转换为我自己定制的Matrix类?
class Matrix(object):
def __init__(self,row,col):
self.row=row
self.col=col
self.matlist=[]
self.create()
def create(self):
for i in range(self.row):
rowlist=[]
for j in range(self.col):
element=input("Enter Row: {} Col: {} : ".format(i+1,j+1))
rowlist.append(element)
self.matlist.append(rowlist)
def __str__(self):
j=str()
for i in range(len(self.matlist)):
for j in range(len(self.matlist[i])):
j+=str(self.matlist[i][j])+" "
j+="\n"
return j
def __add__(self,y):
newmatrix=[]
el1=self.matlist
el2=y.matlist
if (len(el1)==len(el2)) and (len(el1[0])==len(el2[0])):
for i in range(len(el1)):
newlist=[]
for j in range(len(el1[i])):
m=el1[i][j]+el2[i][j]
newlist.append(m)
newmatrix.append(newlist)
return newmatrix
和我已经创建了两个矩阵对象:
m=Matrix(2,2)
n=Matrix(2,2)
,然后我添加矩阵:
k=m+n
它调用__add__()
方法,其返回list
。但我希望它将其作为Matrix
对象返回,以便当我尝试打印它时,将调用__str__()
方法,并简单地打印list
剂量。是否有某种方法可以将list
转换为Matrix
?
如果你想要一个矩阵,为什么你不能得到返回的方法? –
为什么不创建一个额外的构造函数方法,它将从输入列表创建一个新的矩阵,并将其用作__add__方法的返回值? – AArias
@AArias你如何建议我创建一个额外的构造函数? –