-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你如何建議我創建一個額外的構造函數? –